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 相关文章推荐
Python2.5/2.6实用教程 入门基础篇
Nov 29 Python
python聊天程序实例代码分享
Nov 18 Python
探索Python3.4中新引入的asyncio模块
Apr 08 Python
实例解析Python中的__new__特殊方法
Jun 02 Python
python3 破解 geetest(极验)的滑块验证码功能
Feb 24 Python
python 划分数据集为训练集和测试集的方法
Dec 11 Python
Python2与Python3的区别实例分析
Apr 11 Python
Python实现代码统计工具
Sep 19 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
Jan 21 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
Mar 17 Python
python pandas dataframe 去重函数的具体使用
Jul 20 Python
python中urllib包的网络请求教程
Apr 19 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
ionCube 一款类似zend的PHP加密/解密工具
2010/07/25 PHP
PHP和javascript常用正则表达式及用法实例
2014/07/01 PHP
thinkPHP框架中执行原生SQL语句的方法
2017/10/25 PHP
php使用array_chunk函数将一个数组分割成多个数组
2018/12/05 PHP
Locate a File Using a File Open Dialog Box
2007/06/18 Javascript
鼠标选择动态改变网页背景颜色的JS代码
2013/12/10 Javascript
ff chrome和ie下全局动态定位的异同及全局高度的取法
2014/06/30 Javascript
javaScript中push函数用法实例分析
2015/06/08 Javascript
JavaScript保存并运算页面中数字类型变量的写法
2015/07/06 Javascript
JavaScript获取当前cpu使用率的方法
2015/12/15 Javascript
属于你的jQuery提示框(Tip)插件
2016/01/20 Javascript
SpringMVC+bootstrap table实例详解
2017/06/02 Javascript
javascript实现Java中的Map对象功能的实例详解
2017/08/21 Javascript
React Native中的RefreshContorl下拉刷新使用
2017/10/09 Javascript
vue使用ajax获取后台数据进行显示的示例
2018/08/09 Javascript
在vue中安装使用vux的教程详解
2018/09/16 Javascript
JavaScript实现shuffle数组洗牌操作示例
2019/01/03 Javascript
webpack中如何加载静态文件的方法步骤
2019/05/18 Javascript
vue中uni-app 实现小程序登录注册功能
2019/10/12 Javascript
jQuery实现鼠标拖动图片功能
2021/03/04 jQuery
Python机器学习之决策树算法实例详解
2017/12/06 Python
python微信撤回监测代码
2019/04/29 Python
python挖矿算力测试程序详解
2019/07/03 Python
python 字典 setdefault()和get()方法比较详解
2019/08/07 Python
python可视化text()函数使用详解
2020/02/11 Python
Python简单实现词云图代码及步骤解析
2020/06/04 Python
详解python polyscope库的安装和例程
2020/11/13 Python
美国背景检查、公共记录和人物搜索网站:BeenVerified
2018/02/25 全球购物
英国一家集合了众多有才华设计师品牌的奢侈店:Wolf & Badger
2018/04/18 全球购物
Fossil德国官网:化石手表、手袋、珠宝及配件
2019/12/07 全球购物
捷克多品牌在线时尚商店:ANSWEAR.cz
2020/10/03 全球购物
一道Delphi面试题
2016/10/28 面试题
人力资源管理求职信
2014/08/07 职场文书
2015年上半年信访工作总结
2015/03/30 职场文书
2016年中学法制宣传日活动总结
2016/04/01 职场文书
微信小程序结合ThinkPHP5授权登陆后获取手机号
2021/11/23 PHP