"[EMAIL PROTECTED]" wrote:

> Alex Martelli wrote:
> > This becomes a valid list comprehension by writing 'if' instead of
> > 'when'.
>
> valid, yes. efficient, I am not sure.
>
> [ x for x in xrange(10000000) if p(x) ]
>
> means I need to go through the whole range even if p = lambda x: x < 2

Itertools is your friend in this case:
>>> from itertools import takewhile
>>> list(takewhile(p, xrange(10000000)))
[0, 1]

George

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to