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