[Python-ideas] Is this PEP-able? for X in ListY while conditionZ:
Daniel Robinson
gottagetmac at gmail.com
Tue Jul 2 04:28:24 CEST 2013
While this looks attractive to me, and it's definitely better to change
statement and comprehension syntax at the same time, this makes the
comprehension ambiguous to human parsing.
[f(x) for x in list if x > 10] basically can be read as
for x in list:
if x > 10:
f(x)
This kind of interpretation becomes critical if you nest more than two
levels. But [f(x) for x in list while x < 10] could read either as
for x in list while x < 10:
f(x)
which is how you want it to be read, or (more in line with earlier list
comp habits):
for x in list:
while x < 10:
f(x)
which would be totally wrong.
I don't think this is a very serious problem (certainly not for the
interpreter), but it's a stumbling block.
On Mon, Jul 1, 2013 at 10:03 PM, Jan Kaliszewski <zuo at chopin.edu.pl> wrote:
> 2013年07月02日 00:44, Oscar Benjamin wrote:
> [...]
>> Having a while clause on for loops is not just good because it saves a
>> couple of lines but because it clearly separates the flow control from
>> the body of the loop (another reason I dislike 'break if'). In other
>> words I find the flow of the loop
>>>> for p in primes() while p < 100:
>> print(p)
>>>> easier to understand (immediately) than
>>>> for p in primes():
>> if p >= 100:
>> break
>> print(p)
>>>> +1
>> Cheers.
> *j
>>> ______________________________**_________________
> Python-ideas mailing list
> Python-ideas at python.org
> http://mail.python.org/**mailman/listinfo/python-ideas<http://mail.python.org/mailman/listinfo/python-ideas>
>-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20130701/be1b462b/attachment.html>
More information about the Python-ideas
mailing list