generator expressions: performance anomaly?
Nick Coghlan
ncoghlan at iinet.net.au
Tue Jan 18 04:10:01 EST 2005
Raymond Hettinger wrote:
> [Delaney, Timothy C]
>
>>Nick's other suggestion - that genexps propagate __len__ - might
>>still be interesting. Of course, it would only be applicable for
>>unconditional genexps(i.e. no if clause).
>
> Length transparency for iterators is not as general as one would expect. I once
> spent a good deal of effort exploring where it made sense, and I was surprised
> to find that it only rarely works out. Length transparency is an unexpectedly
> thorny subject with many dead-ends which precludes a fully general solution such
> as that proposed by Nick.
>
> For a recap of my research, see the docstring for Lib/test/test_iterlen.py .
"""The situation slightly more involved whenever an object allows length
mutation during iteration. """
Ouch. Nice understatement.
It's rather unfortunate that we can't make use of the length information even
when the source *doesn't* mutate, though. I'll have to think some more to see if
I can come up with any concrete ideas for you to shoot down :)
Cheers,
Nick.
--
Nick Coghlan | ncoghlan at email.com | Brisbane, Australia
---------------------------------------------------------------
http://boredomandlaziness.skystorm.net
More information about the Python-list
mailing list