1 结论: 全用xrange,除非你需要使用返回的列表
2 实验一:性能对比
实验环境:win7 ,64位系统 python2.7
import time StartTime=time.time() count =0 for i in range (100000000): # 这里的8个零 内存变动峰值2555,000kb ,耗时 129s count=count+1 EndTime=time.time() print "cost time is:",(EndTime-StartTime)
import time StartTime=time.time() count =0 for i in xrange (100000000): # 这里的8个零 内存3832kb ,耗时 8s count=count+1 EndTime=time.time() print "cost time is:",(EndTime-StartTime)
3 实验二 原理探究
a = range(5) print type(a) # 输出 <type 'list'> print a #输出 [0 1 2 3 4 ] print a[0], a[1] #输出 0 1
a = xrange(5) print type(a) # 输出 <type 'xrange'> print a # 输出 xrange(5) print a[0], a[1] #输出 0 1
解释:range 会生成一个list ,而 xrange 每次调用返回一个 “xrange object” 。
实验1 的数据是三次实验,取平均值的结果且数据间的差异不大。