我知道range
Python 2.x 的缺点(它创建了一个对大范围来说效率低下的列表)并且它是更快的迭代器对应物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而不是定制的东西。