In <[EMAIL PROTECTED]>, Alex Martelli wrote: > Paul Rubin <http://[EMAIL PROTECTED]> wrote: > >> Dan Bishop <[EMAIL PROTECTED]> writes: >> > If you ever do, it's trivial to write your own enumerate(): >> > def enumerate(seq): >> > index = 0 >> > for item in seq: >> > yield (index, item) >> > index += 1 >> >> That's a heck of a lot slower than the builtin, and if you're running it >> often enough for sys.maxint to be an issue, you may care about the speed. > > Perhaps itertools.izip(itertools.count(), seq) might be faster (haven't > timed it, but itertools tends to be quite fast).
I think correct is more important than fast. `itertools.count()` has the same issues that `enumerate()`: >>> from itertools import count >>> from sys import maxint >>> c = count(maxint) >>> c.next() 2147483647 >>> c.next() -2147483648 What I find most disturbing here, is that it happens silently. I would have expected an exception instead of the surprise. Ciao, Marc 'BlackJack' Rintsch -- http://mail.python.org/mailman/listinfo/python-list