[Python-Dev] Don't set local variable in a list comprehension or generator (original) (raw)

Nick Coghlan ncoghlan at gmail.com
Thu May 19 11:03:10 CEST 2011


On Thu, May 19, 2011 at 7:34 AM, Victor Stinner <victor.stinner at haypocalc.com> wrote:

But it is slower whereas I read somewhere than generators are faster than loops.

Are you sure it wasn't that generator expressions can be faster than list comprehensions (if the memory savings are significant)?

Or that a reduction function with a generator expression can be faster than a module-level explicit loop (due to the replacement of dict-based variable assignment with fast locals in the generator and C looping in the reduction function)?

In general, as long as both are using fast locals and looping in Python, I would expect inline looping code to be faster than the equivalent generator (but often harder to maintain due to lack of reusability).

Cheers, Nick.

-- Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia



More information about the Python-Dev mailing list