Python中range与xrange比较

用法

Python中的range和xrange基本都是在循环的时候使用,输出结果是一样的:

>>> for i in range(0, 5):
...     print i
...
0
1
2
3
4
>>> for i in xrange(0, 5):
...     print i
...
0
1
2
3
4

区别

range生成的是一个列表对象,而xrange返回的则是一个生成器,因此xrange不需要一开始就开辟出一块很大的内存。

即在做循环时,一般提倡用xrange,数据量很大的时候优势很明显。除非是想返回一个列表。下面给出代码示例:

>>> a = range(0, 5)
>>> print type(a)
<type 'list'>
>>> print a
[0, 1, 2, 3, 4]
>>> print a[0], a[1]
0 1
>>> b = xrange(0, 5)
>>> print type(b)
<type 'xrange'>
>>> print b
xrange(5)
>>> print b[0], b[1]
0 1