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