Schwierigkeit mit Problem
Das kann eigentlich nur ein Missverständnis sein, aber gut...
Also nicht so, wie von Sirius3 eine Liste erzeugt wird, die dann in der nächsten Zeile in die for-Schleife gegeben wird. Wo man dann insgesamt zweimal iteriert.
Code: Alles auswählen
stars = [1 + n ** 2 for n in range(-4, 5)]
for number in stars:
print("*" * number)
Code: Alles auswählen
for x in range(-4, 5):
mul = 5 - abs(x)
print('+' * mul)
- __blackjack__
- User
- Beiträge: 13077
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Es ist ein Unterschied ob man ein Sprachkonstrukt falsch verwendet, oder ob es richtig verwendet wird, im Kontext aber etwas effizienteres möglich wäre. Wobei Effizienz ein komisches Argument ist wenn man das erstellen einer völlig sinnlosen Liste verteidigen möchte. Dann hättest Du mindestens mal so konsequent sein sollen eine „set comprehension“ zu verwenden, damit das einen konstanten Speicherverbrauch hat, die ganzen sinnfreien `None`-Werte zu sammeln. (Wäre auch noch näher an der Mathematik, denn die Zermelo-Fraenkel-Notation auf die die „comprehension“-Syntax anspielt, beschreibt ja im Original Mengen.)
Man könnte auch sagen die Liste hätte besser ein Generatorausdruck sein sollen, oder die Multiplikation der Zeichenkette hätte mit in der Liste oder dem Generatorausdruck stecken sollen. Das sind aber alles Fragen die nichts mit dem Punkt zu tun haben, dass eine „list comprehension“ dafür gedacht ist eine Liste zu erstellen und nicht dazu eine beliebige Schleife zu ersetzen bei der es nur im den Seiteneffekt und nicht um das sammeln von generierten Werten geht.
Man könnte auch sagen die Liste hätte besser ein Generatorausdruck sein sollen, oder die Multiplikation der Zeichenkette hätte mit in der Liste oder dem Generatorausdruck stecken sollen. Das sind aber alles Fragen die nichts mit dem Punkt zu tun haben, dass eine „list comprehension“ dafür gedacht ist eine Liste zu erstellen und nicht dazu eine beliebige Schleife zu ersetzen bei der es nur im den Seiteneffekt und nicht um das sammeln von generierten Werten geht.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Netter Versuch __blackjack__ es ging jetzt aber um die Frage ob man vor dem Iterieren die zu iterierenden Elemente in einer Listcomprehension aufsammeln muss, oder ob es dazu Alterntiven gibt. Frage mich aber bitte nicht warum das überhaupt ein Thema ist.