PEP 289: Generator Expressions (please comment)

Bengt Richter bokr at oz.net
Sun Oct 26 03:08:16 EST 2003


On 23 Oct 2003 12:58:31 -0700, python at rcn.com (Raymond Hettinger) wrote:

>Peter Norvig's creative thinking triggered renewed interest in PEP 289.
>That led to a number of contributors helping to re-work the pep details
>into a form that has been well received on the python-dev list:
>
>    http://www.python.org/peps/pep-0289.html
>
>In brief, the PEP proposes a list comprehension style syntax for
>creating fast, memory efficient generator expressions on the fly:
>
>    sum(x*x for x in roots)
>    min(d.temperature()*9/5 + 32 for d in days)
>    Set(word.lower() for word in text.split() if len(word) < 5)
>    dict( (k, somefunc(k)) for k in keylist )
>    dotproduct = sum(x*y for x,y in itertools.izip(xvec, yvec))
>    bestplayer, bestscore = max( (p.score, p.name) for p in players )
>
>Each of the above runs without creating a full list in memory,
>which saves allocation time, conserves resources, and exploits
>cache locality.
>
>The new form is highly expressive and greatly enhances the utility
>of the many python functions and methods that accept iterable arguments.
>
+1

Regards,
Bengt Richter




More information about the Python-list mailing list