[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