How to enumerate a range of numbers starting at 1

后端 未结 12 1142
谎友^
谎友^ 2020-11-29 23:42

I am using Python 2.5, I want an enumeration like so (starting at 1 instead of 0):

[(1, 2000), (2, 2001), (3, 2002), (4, 2003), (5, 2004)]

12条回答
  •  旧巷少年郎
    2020-11-30 00:18

    As you already mentioned, this is straightforward to do in Python 2.6 or newer:

    enumerate(range(2000, 2005), 1)
    

    Python 2.5 and older do not support the start parameter so instead you could create two range objects and zip them:

    r = xrange(2000, 2005)
    r2 = xrange(1, len(r) + 1)
    h = zip(r2, r)
    print h
    

    Result:

    [(1, 2000), (2, 2001), (3, 2002), (4, 2003), (5, 2004)]
    

    If you want to create a generator instead of a list then you can use izip instead.

提交回复
热议问题