[Python-ideas] Allowing breaks in generator expressions by overloading the while keyword

Carl Smith carl.input at gmail.com
Fri Feb 21 03:13:13 CET 2014


Sometimes you need to build a list in a loop, but break from the loop if
some condition is met, keeping the list up to that point. This is so common
it doesn't really need an example.

Trying to shoehorn the break keyword in to the generator expression syntax
doesn't look pretty, unless you add `and break if expr` to the end, but
that has its own issues. Besides, overloading `while` is much cuter...

    ls = [ expr for name in iterable while expr ]

    ls = [ expr for name in iterable if expr while expr ]

    ls = [ expr for name in iterable if expr else expr while expr ]

With regular generator expressions, it gives you a kind of base case, which
may assist with showing off.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20140221/f6a92886/attachment.html>


More information about the Python-ideas mailing list