Python range和xrange的区别和联系
nevz7110
9年前
来自: http://blog.csdn.net//never_cxb/article/details/49962175
Python range和xrange的区别和联系
一言以蔽之
range产生的是一个列表,而xrange产生的是一个类似迭代器的。
所以对于较大的集合时候,xrange比range性能好。
因为range一次把所以数据都返回,而xrange每次调用返回其中的一个值
代码验证
print range(1,10) print xrange(1,10) print list(xrange(1,10))
输出
[1, 2, 3, 4, 5, 6, 7, 8, 9] xrange(1, 10) [1, 2, 3, 4, 5, 6, 7, 8, 9]
看下range和xrange的类型信息
print type(range(1,10)) print type(xrange(1,10))
输出
<type 'list'> <type 'xrange'>
统计程序运行时间
import time sum1 = 0 start1 = time.clock() for i in range(1,1000000): sum1 += i end1 = time.clock() print end1 - start1 print sum1 sum2 = 0 start2 = time.clock() for i in xrange(1,1000000): sum2 += i end2 = time.clock() print end2 - start2 print sum2
输出
0.292618551173 499999500000 0.249540776676 499999500000
可以看出xrange运行时间要小于range,数据量越大时,两者差别越明显。