[Python-de] Erweiterte "For"-Schleife

Thomas Rachel nutznetz-0c1b6768-bfa9-48d5-a470-7603bd3aa915 at spamschutz.glglgl.de
Fr Mai 11 12:38:53 CEST 2012


Am 11.05.2012 11:37 schrieb Stefan Behnel:
> Hartmut Goebel, 09.05.2012 16:21:
>> Am 09.05.2012 14:23, schrieb Olе Streicher:
>>> for item in myoldlist if bar(item):
>>>      mynewlist.append(foo(item))
>>>
>>> (Schon klar: weil es die Syntax nicht zulässt. Aber warum wurde das so
>>> designed?)
>> Weil's unverständlich ist?!
>>
>> Bezieht sich das `if` auf die For-Schleife, oder auf `myoldlist`?
>> Unnötig kompliziert, nur um ein paar Zeichen zu sparen.
>
> Ja, das ist auch das Hauptargument, wenn dieser Vorschlag mit einiger
> Regelmäßigkeit auf den Python-Mailinglisten auftaucht.

Kann ich nicht nachvollziehen. Ich nehme an, daß das Ganze auf a if b 
else c abzielt.

Aber

1. fehlt da ja dann der else-Teil und
2. wäre das bei List comprehensions, Generator expressions und dem seit 
2.7 bei set und dict vorkommenden Teilen ebenso:

i for i in a if b

vs.

i for i in a if b else c

Grade getestet: Letzteres läßt sich in [] und () nicht parsen, aber 
dennoch sollte es doch auch einen Weg geben,

for i in a if b else c: i

von dem (noch) nicht exisitierenden

for i in a if b: i

zu unterscheiden...


Thomas


Mehr Informationen über die Mailingliste python-de