![](https://secure.gravatar.com/avatar/e1f5f984cbc32a8ba5d0f074d2f1cf19.jpg?s=120&d=mm&r=g)
On 07/01/2013 10:27 PM, Daniel Robinson wrote:
In addition to defying the ordinary order of the syntax, that would make this statement totally ambiguous:
[f(x), f(y) for x in list1 for y in list2, while x < y]
And I definitely don't think commas (other than the f(x), f(y) usage shown above) or semicolons are good ideas.
I agree. There is also the problem of how to spell it with both a filter test, and the end test at the same time. You can write it as one or the other with a stop() function, but they don't work independently. [x for x in values if x<50 or stop()] # will work in 3.4 And of course this works now. [x for x in values if x%2==0] To do both is tricky and took me a while to come up with... [x for x in values if stop(x>50) or x%2==0] Where stop(x>50) raises StopIteration if the test is True or False otherwise. Which make the 'or expression' needed even if it's just a 'or True'. It should work, but seems awkward to me. Cheers, Ron