本文目录一览:
python中xrange用法分析
python中xrange用法分析
本文实例讲述了python中xrange用法。分享给大家供大家参考。具体如下:
先来看如下示例:
x=xrange(0,8)
print x
xrange(8)
print x[0]
print x[7]
7
print x[8]
Traceback (most recent call last):
File “stdin”, line 1, in module
IndexError: xrange object index out of range
x=range(0,8)
print x
[0, 1, 2, 3, 4, 5, 6, 7]
print x[0]
print x[8]
Traceback (most recent call last):
File “stdin”, line 1, in module
IndexError: list index out of range
range([start,] stop [,step])-list of integers
range()返回一个递增或递减的数字列表,列表的元素值由三个参数决定
start表示列表开始的值,默认为“0”。
stop 表示列表结束的值,该参数不可缺少
参数step表示步长,默认值为“1”。
range()返回的是一个递增或递减的数字列表。
xrange 是一个类,返回的是一个xrange对象。使用xrange()进行遍历,每次遍历只返回一个值。range()返回的是一个列表,一次性计算并返回所有的值。因此,xrange()的执行效率要高于range()
希望本文所述对大家的Python程序设计有所帮助。
Python中Range和XRange的区别
在python中
range
函数说明:range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个列表。
例子:
xrange
函数说明:xrange 用法与 range 完全相同,所不同的是生成的不是一个list对象,而是一个生成器。
例子:
但是要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间,这两个基本上都是在循环的时候用。
再循环中尽量使用 xrange 这样性能可以得到提高,除非要返回一个列表
由上面的示例可以知道:要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间。
xrange 和 range 这两个基本上都是在循环的时候用。
这两个输出的结果都是一样的,实际上有很多不同,range会直接生成一个list对象:
输出结果:
而xrange则不会直接生成一个list,而是每次调用返回其中的一个值:
输出结果:
总结:
所以xrange做循环的性能比range好,尤其是返回很大的时候。尽量用xrange吧,除非你是要返回一个列表。
python中xrange和range的异同 CiNiao’s blog
Python2 中range()生成的是一个list而xrange()则生成一个generator,两者区别比较大,比如说:
for i in range(9999999999999999999999999999999999999999999999999999):
print i
内存就直接爆掉,而使用xrange则不会出问题,因为xrange是每次循环,i通过表达式推出,并不会把整张列表直接生成.
注:Python3中去掉xrange()功能由range()代替.
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/244287.html