为什么xrange()比range()更快?

时间:2016-07-03 07:23:23

标签: python python-2.7 range

我定时range()xrange()期待range()更快。但我得到了令人惊讶的结果。

$ python -m timeit 'for i in range(1000000):' ' pass'
10 loops, best of 3: 39.9 msec per loop
$ python -m timeit 'for i in xrange(1000000):' ' pass'
10 loops, best of 3: 20.2 msec per loop

如果我没有弄错的话,range()将整个列表存储在内存中,xrange()懒惰地评估列表。

所以不应该从已经生成的列表访问元素比懒惰地评估列表和获取所需元素更快?我不明白。

0 个答案:

没有答案