Python xrange与range的区别
转载自:现代魔法学院
原文地址:http://www.nowamagic.net/academy/detail/1302446
range 前面小节已经说明了,range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列。
比如:
>>> range(5)
[0, 1, 2, 3, 4]
>>> range(1,5)
[1, 2, 3, 4]
>>> range(0,6,2)
[0, 2, 4]
xrange 用法与 range 完全相同,所不同的是生成的不是一个list对象,而是一个生成器。
>>> 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性能优很多,因为不需要一上来就开辟一块很大的内存空间。
xrange 和 range 这两个基本上都是在循环的时候用。
>>> 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性能优很多,因为不需要一上来就开辟一块很大的内存空间。
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
所以xrange做循环的性能比range好,尤其是返回很大的时候。尽量用xrange吧,除非你是要返回一个列表。
转载于:https://blog.51cto.com/zgw285763054/1891983
Python xrange与range的区别相关推荐
- python中bytearray和java中byte[]的区别_Python经典面试题:说说Python中xrange和range的区别?...
昨晚一小伙后台问xrange和range有啥区别,讲了下他倒领悟的挺快,其实这也是你各面试Python岗位,经常会遇到的Python面试题,长个心眼哈,说不定明年3月你找工作就用上了. 废话不多说,开 ...
- 【Python面试】 说说Python中xrange和range的区别?
往期面试题: 谈谈对 Python 和其他语言的区别? 说说4种常用编码的区别? 说说Python面向对象三大特性? 说说Python中有几种数据类型? 废话不多说,开始今天的题目: 问:说说Pyth ...
- python2中xrange比range优点_【Python面试】 说说Python中xrange和range的区别?
公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...
- python range 步长为负数_【Python面试】 说说Python中xrange和range的区别?
公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...
- Python经典面试题:说说Python中xrange和range的区别?
昨晚一小伙后台问xrange和range有啥区别,讲了下他倒领悟的挺快,其实这也是你各面试Python岗位,经常会遇到的Python面试题,长个心眼哈,说不定明年3月你找工作就用上了. 废话不多说,开 ...
- python range函数与numpy arange函数,xrange与range的区别
转自:https://www.cnblogs.com/ymjyqsx/p/6426764.html 1.range()返回的是range object,而np.arange()返回的是numpy.nd ...
- python中xrange和range的区别
2019独角兽企业重金招聘Python工程师标准>>> >>> range(5) [0, 1, 2, 3, 4] >>> range(1,5) [ ...
- [转载] Python中的xrange和range的区别
参考链接: Python中的range()和xrange() 在python2 中 range(start,end,step)返回一个列表,返回的结果是可迭代对象,但不是迭代器.iter()转化为列表 ...
- python range函数小数_python range函数与numpy arange函数,xrange与range的区别
转自:https://www.cnblogs.com/ymjyqsx/p/6426764.html 1.range()返回的是range object,而np.arange()返回的是numpy.nd ...
最新文章
- Python中必学知识点:类方法、实例方法和静态方法
- 转再次写给我们这些浮躁的程序员
- Centos7 Docker 安装与启动_入门试炼01
- html5游戏制作入门系列教程(八)
- 字符串过滤非数字c语言,【新手】【求思路】如何判断用户输入的字符串中是否含有非数字?...
- 跟着百度学PHP[13]-文件上传
- Linux 基本命令(二)--cd 常用命令
- webpack3 css,webpack3之处理css文件
- 使用c语言打印九九乘法表
- Excel实现下拉筛选
- python8皇后不攻击问题_Python 解决八皇后问题
- 支付宝小程序的开发笔记
- Cesium开发基础篇 | 04空间数据可视化之Entity
- 【Quartz】任务调度
- 半导体功率器件静态参数测试仪系统 能测 IGBT. Mosfet. Diode. BJT......
- EfficientNet网络解析
- ACP敏捷9.敏捷应用场景
- 颜值爆表!华为发布新千元旗舰畅享6S
- 用python画花瓣-用python画花瓣
- Lightroom 中照片的修改信息储存在哪了?
热门文章
- 直流电路相关计算机,计算机专业用复杂直流电路习题(各种方法运用).doc
- jqplot php,JSON的jqPlot
- java后门_@Java Web 程序员,我们一起给程序开个后门吧:让你在保留现场,服务不重启的情况下,执行我们的调试代码...
- Word2016如何取消宏已被禁用的提示
- 矩阵的直接LU分解法
- pyhon 数据类型转换函数
- 【Boost】boost库asio详解2——io_service::run函数无任务时退出的问题
- asp.net调用opencv类库,实现图像处理显示
- 思科发力虚拟化和云服务 推出多款新品
- Oracle进阶学习之创建dblink