我定时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()
懒惰地评估列表。
所以不应该从已经生成的列表访问元素比懒惰地评估列表和获取所需元素更快?我不明白。