Yes, but it only works for generator expressions and not comprehensions. My opinion of that workaround is that it’s also a step backward in terms of readability. I suspect if i < 50 else stop() would probably also work, since it throws an exception. That’s better, IMHO. On Jun 28, 2013, at 6:38 PM, Andrew Carter <acarter@g.hmc.edu> wrote:
Digging through the archives (with a quick google search) http://mail.python.org/pipermail/python-ideas/2013-January/019051.html, if you really want an expression it seems you can just do
def stop(): raise StopIteration list(i for i in range(100) if i < 50 or stop())
it seems to me that this would provide syntax that doesn't require lambdas.
On Fri, Jun 28, 2013 at 4:50 PM, Alexander Belopolsky <alexander.belopolsky@gmail.com> wrote:
On Fri, Jun 28, 2013 at 7:38 PM, Shane Green <shane@umbrellacode.com> wrote: .. [x until condition for x in l ...] or [x for x in l until condition]
Just to throw in one more variation:
[expr for item in iterable break if condition]
(inversion of "if" and "break"reinforces the idea that we are dealing with an expression rather than a statement - compare with "a if cond else b")
_______________________________________________ Python-ideas mailing list Python-ideas@python.org http://mail.python.org/mailman/listinfo/python-ideas