James Stroud <[EMAIL PROTECTED]> writes: > Fredrik Lundh wrote: > > why is it this function's job to add an offset to the actual > > sequence index? > > The code is for an economist. She is insistent on starting with the > first bin as 1.
Note that 'enumerate' is actually a built-in type, and 'enumerate()' is the constructor returning a new object of that type. A special case isn't special enough to change the built-in type. >>> 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')] This doesn't produce an 'enumerate' object; if you really want that, you could subclass 'enumerate', but it seems the above function does what you want. -- \ "I installed a skylight in my apartment. The people who live | `\ above me are furious!" -- Steven Wright | _o__) | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list