我正在使用 Python 2.5,我想要一个像这样的枚举(从 1 而不是 0 开始):
[(1, 2000), (2, 2001), (3, 2002), (4, 2003), (5, 2004)]
我知道在 Python 2.6 中你可以这样做: h = enumerate(range(2000, 2005), 1) 给出上述结果,但在 python2.5 中你不能......
使用 Python 2.5:
>>> h = enumerate(range(2000, 2005)) >>> [x for x in h] [(0, 2000), (1, 2001), (2, 2002), (3, 2003), (4, 2004)]
有谁知道在 Python 2.5 中获得所需结果的方法?
正如您已经提到的,这在 Python 2.6 或更高版本中很简单:
enumerate(range(2000, 2005), 1)
Python 2.5 及更早版本不支持该start参数,因此您可以创建两个范围对象并压缩它们:
start
r = xrange(2000, 2005) r2 = xrange(1, len(r) + 1) h = zip(r2, r) print h
结果:
如果你想创建一个生成器而不是一个列表,那么你可以使用izip来代替。