python中xrange和range的区别


Posted in Python onMay 13, 2014

range 函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列。
range示例:

>>> range(5)
[0, 1, 2, 3, 4]
>>> range(1,5)
[1, 2, 3, 4]
>>> range(0,6,2)
[0, 2, 4]

xrange 函数说明:用法与range完全相同,所不同的是生成的不是一个数组,而是一个生成器。
xrange示例:

>>> xrange(5)
xrange(5)
>>> list(xrange(5))
[0, 1, 2, 3, 4]
>>> xrange(1,5)   
xrange(1, 5)
>>> list(xrange(1,5))
[1, 2, 3, 4]
>>> xrange(0,6,2)
xrange(0, 6, 2)
>>> list(xrange(0,6,2))
[0, 2, 4]

由上面的示例可以知道:要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间,这两个基本上都是在循环的时候用:

for i in range(0, 100):
 print i
for i in xrange(0, 100):
 print i

这两个输出的结果都是一样的,实际上有很多不同,range会直接生成一个list对象:
a = range(0,100)
print type(a)
print a
print a[0], a[1]

输出结果:

<type 'list'>
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
0 1

而xrange则不会直接生成一个list,而是每次调用返回其中的一个值:

a = xrange(0,100)
print type(a)
print a
print a[0], a[1]

输出结果:

<type 'xrange'>
xrange(100)
0 1
Python 相关文章推荐
Python中字典(dict)和列表(list)的排序方法实例
Jun 16 Python
Python中使用PIPE操作Linux管道
Feb 04 Python
简单谈谈Python流程控制语句
Dec 04 Python
Python递归实现汉诺塔算法示例
Mar 19 Python
python使用代理ip访问网站的实例
May 07 Python
python 脚本生成随机 字母 + 数字密码功能
May 26 Python
python pandas消除空值和空格以及 Nan数据替换方法
Oct 30 Python
python爬虫获取新浪新闻教学
Dec 23 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
Jan 15 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
Aug 09 Python
python matlab库简单用法讲解
Dec 31 Python
Python查找算法的实现 (线性、二分,分块、插值查找算法)
Apr 24 Python
Python中os和shutil模块实用方法集锦
May 13 #Python
Python中的jquery PyQuery库使用小结
May 13 #Python
Python getopt模块处理命令行选项实例
May 13 #Python
Python random模块(获取随机数)常用方法和使用例子
May 13 #Python
Python自动化测试工具Splinter简介和使用实例
May 13 #Python
Python获取远程文件大小的函数代码分享
May 13 #Python
Python FTP操作类代码分享
May 13 #Python
You might like
PHP数组与对象之间使用递归实现转换的方法
2015/06/24 PHP
Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
2016/10/08 PHP
php 字符串中是否包含指定字符串的多种方法
2018/04/12 PHP
自己动手制作jquery插件之自动添加删除行的实现
2011/10/13 Javascript
用js实现控件的隐藏及style.visibility的使用
2013/06/14 Javascript
js中生成map对象的方法
2014/01/09 Javascript
js 判断浏览器使用的语言示例代码
2014/03/22 Javascript
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
JavaScript实现三阶幻方算法谜题解答
2014/12/29 Javascript
深入理解JavaScript系列(42):设计模式之原型模式详解
2015/03/04 Javascript
js中javascript:void(0) 真正含义
2020/11/05 Javascript
基于Jquery实现万圣节快乐特效
2015/11/01 Javascript
使用CDN和AJAX加速WordPress中jQuery的加载
2015/12/05 Javascript
利用jqprint插件打印页面内容的实现方法
2018/01/09 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
2018/08/10 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
2020/05/31 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
2020/09/21 Javascript
Vue toFixed保留两位小数的3种方式
2020/10/23 Javascript
python在ubuntu中的几种安装方法(小结)
2017/12/08 Python
python 日志增量抓取实现方法
2018/04/28 Python
实例讲解python中的序列化知识点
2018/10/08 Python
Python imutils 填充图片周边为黑色的实现
2020/01/19 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
2020/04/10 Python
在keras里实现自定义上采样层
2020/06/28 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
Cole Haan官方网站:美国时尚潮流品牌
2017/12/06 全球购物
Missguided美国官网:英国时尚品牌
2018/01/18 全球购物
支票、地址标签、包装纸和慰问卡:Current Catalog
2018/01/30 全球购物
学生请假条
2014/04/11 职场文书
和解协议书
2014/04/16 职场文书
机关干部四风问题自我剖析及整改措施
2014/10/26 职场文书
2014年乡镇个人工作总结
2014/12/03 职场文书
酒店财务总监岗位职责
2015/04/03 职场文书
2015年家长学校工作总结
2015/04/22 职场文书
初中思品教学反思
2016/02/20 职场文书
MySQL数据库安装方法与图形化管理工具介绍
2022/05/30 MySQL