Ben Finney <[EMAIL PROTECTED]> writes: > >>> print enumerate("ABCDE") > <enumerate object at 0xa7d642ac> > >>> print list(enumerate("ABCDE")) > [(0, 'A'), (1, 'B'), (2, 'C'), (3, 'D'), (4, 'E')] > > >> def obstinate_economist_enumerate(items): > ... seq = [(i+1, x) for (i, x) in enumerate(items)] > ... return iter(seq) > ... > >>> print obstinate_economist_enumerate("ABCDE") > <listiterator object at 0xa7d6408c> > >>> print list(obstinate_economist_enumerate("ABCDE")) > [(1, 'A'), (2, 'B'), (3, 'C'), (4, 'D'), (5, 'E')]
An improvement: using a generator so as not to unnecessarily create an intermediate list from the initial enumerator: >>> def obstinate_economist_enumerate(items): ... enum_iter = iter((i+1, x) for (i, x) in enumerate(items)) ... return enum_iter ... >>> print obstinate_economist_enumerate("ABCDE") <generator object at 0xa7d6444c> >>> print list(obstinate_economist_enumerate("ABCDE")) [(1, 'A'), (2, 'B'), (3, 'C'), (4, 'D'), (5, 'E')] -- \ "If sharing a thing in no way diminishes it, it is not rightly | `\ owned if it is not shared." -- Saint Augustine | _o__) | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list