[Python-ideas] Generator syntax hooks?
Terry Reedy
tjreedy at udel.edu
Thu Aug 10 16:03:42 EDT 2017
On 8/10/2017 9:42 AM, Steven D'Aprano wrote:
> On Wed, Aug 09, 2017 at 01:23:28PM -0700, Chris Barker wrote:
>
>> I can't recall the use case(s) at the moment, but I have definitely wanted
>> a way to break out of a comprehension -- and not always with infinite
>> iterators.
>>
>> After all, we have "break" in both for and while loops, so clearly there is
>> the use case...
In both cases, we use 'break' to mean break. If we want to break
comprehensions, I think we should continue to use 'break' to mean break
instead of twisting 'while' to mean 'break'.
> [expression for x in sequence while condition]
>
> should (I believe) be obvious to anyone who already groks comprehension
> syntax. The mapping to a for-loop is admittedly a tad more complex:
>
> result = []
> for x in sequence:
> if not condition: break
> result.append(expression)
This is the same as
result = []
for x in sequence:
if condition:
result.append(expression)
else:
break
which could be written
[expression for x in sequence if condition break]
--
Terry Jan Reedy
More information about the Python-ideas
mailing list