[Python-Dev] PEP 3142: Add a "while" clause to generator expressions
tino at wildenhain.de
Thu Jan 22 11:48:08 CET 2009
Gerald Britton wrote:
> The sieve is just one example. The basic idea is that for some
> infinite generator (even a very simple one) you want to cut it off
> after some point. As for the number of characters, I spelled lambda
> incorrectly (left out a b) and there should be a space after the colon
> to conform to design guides. So, actually the takewhile version is
> two characters longer, not counting "import itertools" of course!
the only usefull approach I could see is to enable slice syntax
on generators which would make it possible to describe the exact
or maximum lenght of results you want out of it.
>> g=(i for i in xrange(1000))[2:5]
>> g.next() # wrapper would now step 2 times w/o yield and 1 with yield
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
as expected - this could be included into itertools for now.
> On Mon, Jan 19, 2009 at 11:44 AM, Daniel Stutzbach
> <daniel at stutzbachenterprises.com> wrote:
>> On Mon, Jan 19, 2009 at 10:37 AM, Gerald Britton <gerald.britton at gmail.com>
>>> prime = (p for p in sieve() while p < 1000)
>>> prime = takewhile(lamda p:p<1000, sieve())
>> I'm pretty sure the extra cost of evaluating the lambda at each step is tiny
>> compared to the cost of the sieve, so I don't you can make a convincing
>> argument on performance.
>> Also, you know the latter is actually fewer characters, right? :-)
>> Daniel Stutzbach, Ph.D.
>> President, Stutzbach Enterprises, LLC
> Python-Dev mailing list
> Python-Dev at python.org
> Unsubscribe: http://mail.python.org/mailman/options/python-dev/tino%40wildenhain.de
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 3241 bytes
Desc: S/MIME Cryptographic Signature
More information about the Python-Dev