【发布时间】:2013-01-30 01:42:19
【问题描述】:
我知道 Python 2.x 中 range 的缺点(它创建的列表对于大范围而言效率低下),它是更快的迭代器对应物 xrange。然而,在 Python 3.x 中,range 是一个迭代器,xrange 被删除。有没有办法用 Python 2.x 和 Python 3.x 编写这两个循环,使代码可移植并使用迭代器?
# Python 2.x
for i in xrange(a_lot):
use_i_in_someway(i)
# Python 3.x
for i in range(a_lot):
use_i_in_someway(i)
我知道有人可能会做类似的事情
if(platform.python_version_tuple()[0] == '3'):
xrange = range
但我正在考虑一些不那么 hack-ish 而不是定制的东西。
【问题讨论】:
标签: python iterator range xrange