Generator Expressions
Liste vs Generator
quadrate_liste = [x * x for x in range(5)] # Liste im Speicher
quadrate_gen = (x * x for x in range(5)) # Generator
print(quadrate_liste)
print(list(quadrate_gen))
Direkt verbrauchen
print(sum(x * x for x in range(1, 6)))
Rate mal!
Kann man einen Generator zweimal for-en?
Auflösung
Meist nein – nach dem Durchlauf ist er erschöpft. Neu erzeugen.
Probiere es selbst
Experiment 1
Generator Expression 1..10.
Experiment 2
sum damit.
Experiment 3
list() drum, um alle zu sehen.
Übungen
Level 1
(i for i in range(3)) + list.
Level 2
sum der Quadrate 1..10.
Level 3
Filter gerade in Generator Expression.
Level-2-Lösung
print(sum(i * i for i in range(1, 11)))
Mini-Quiz
Expressions sitzen! Als Nächstes: Pipelines.