int vs long

Marc 'BlackJack' Rintsch bj_666 at gmx.net
Mon Jun 4 03:29:17 EDT 2007


In <1hz4uas.7jeyyu192pb8tN%aleax at mac.com>, Alex Martelli wrote:

> Paul Rubin <http://phr.cx@NOSPAM.invalid> wrote:
> 
>> Dan Bishop <danb_83 at yahoo.com> 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




More information about the Python-list mailing list