本文目录一览:
- python中xrange用法分析
- Python中Range和XRange的区别
- [python中xrange和range的异同 CiNiao's blog](#python中xrange和range的异同 CiNiao)
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()
代替。