Was ist ein Iterator?
for nutzt Iteratoren
for x in [10, 20, 30]:
print(x)
Hinter den Kulissen holt Python nacheinander das nächste Element.
iter und next
it = iter([10, 20, 30])
print(next(it)) # 10
print(next(it)) # 20
print(next(it)) # 30
# next(it) -> StopIteration
Iterable vs Iterator
- Iterable: etwas, worüber man laufen kann (Liste, Datei, range)
- Iterator: Objekt, das
nextkann
Rate mal!
Warum nicht alles immer als riesige Liste laden?
Auflösung
Große Daten verbrauchen viel Speicher – Iteration kann stückweise arbeiten.
Probiere es selbst
Experiment 1
iter + next manuell.
Experiment 2
for über String.
Experiment 3
StopIteration beobachten.
Übungen
Level 1
Erkläre next.
Level 2
iter auf Tupel.
Level 3
Eigene Schleife mit next bis StopIteration (try).
Level-3-Lösung
it = iter("ab")
while True:
try:
print(next(it))
except StopIteration:
break
Mini-Quiz
Iterator-Idee sitzt! Als Nächstes: yield.