This is even easier said than any of the previous ones:
$ python Python 2.5.5 (r255:77872, Mar 15 2010, 00:43:13) [GCC 4.3.4 20090804 (release) 1] on cygwin Type "help", "copyright", "credits" or "license" for more information. >>> abc = (letter for letter in 'abc') >>> abc <generator object at 0x7ff29d8c> >>> numbered = enumerate(abc) >>> numbered <enumerate object at 0x7ff29e2c>
If the enumeration does not fulfill the lazy estimate, it will return [(0,'a'), (1,'b'), (2,'c')] or some (almost) equivalent.
Of course, the listing is really just a fantastic generator:
def myenumerate(iterable): count = 0 for _ in iterable: yield (count, _) count += 1 for i, val in myenumerate((letter for letter in 'abc')): print i, val
Wayne Werner Aug 03 '10 at 12:55
source share