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

Mathias Panzenböck grosser.meister.morti at gmx.net
Fri Feb 21 04:14:16 CET 2014


Am 2014-02-21 03:13, schrieb Carl Smith:
> 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.
>
>

I think this was already suggested once on this list.
See: https://groups.google.com/forum/#!topic/python-ideas/4O1TCOa2fo8



More information about the Python-ideas mailing list