language-x-isms
Alan Kennedy
alanmk at hotmail.com
Thu Jun 8 06:30:25 EDT 2006
[Alan Kennedy]
> On jython 2.1, I use something like this
> #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> try:
> enumerate
> except NameError:
> def enumerate(iterable):
> results = [] ; ix = 0
> for item in iterable:
> results.append( (ix, item) )
> ix = ix+1
> return results
[Fredrik Lundh]
>> at least in CPython, using a user-defined enumerate function is a bit
>> slower than using the built-in version.
[Alan Kennedy]
>> Who's using a user-defined enumerate on cpython?
[Fredrik Lundh]
> anyone targeting older Python platforms.
You mean python platforms where there is no built-in enumerate?
Your comment makes "using a user-defined enumerate [on cpython] is
slower than using the built-in version" makes no sense in relation to
the code I posted, which only defines a user-defined enumerate *if
there is no builtin enumerate*.
[Alan Kennedy]
>> On cpython, the reference to enumerate doesn't generate a NameError,
[Fredrik Lundh]
> > python
> Python 2.2.3 (#42, May 30 2003, 18:12:08)
> >>> enumerate
> Traceback (most recent call last):
> File "<stdin>", line 1, in ?
> NameError: name 'enumerate' is not defined
Right: there is no built-in enumerate on cpython 2.2. So how could a
user-defined one be slower than it?
Of course, my cpython comment referred to recent cpythons, i.e. 2.3,
2.4, 2.5. The code I supplied works on all versions of python, and
*never* replaces the built-in enumerate, if there is one.
So what's the problem, exactly?
regards,
--
alan kennedy
------------------------------------------------------
email alan: http://xhaus.com/contact/alan
More information about the Python-list
mailing list