How to enumerate a range of numbers starting at 1

后端 未结 12 1141
谎友^
谎友^ 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:11

    >>> h = enumerate(range(2000, 2005))
    >>> [(tup[0]+1, tup[1]) for tup in h]
    [(1, 2000), (2, 2001), (3, 2002), (4, 2003), (5, 2004)]
    

    Since this is somewhat verbose, I'd recommend writing your own function to generalize it:

    def enumerate_at(xs, start):
        return ((tup[0]+start, tup[1]) for tup in enumerate(xs))
    

提交回复
热议问题