Zum Hauptinhalt springen

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 next kann

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

Mini-QuizWas wirft next am Ende oft?

Iterator-Idee sitzt! Als Nächstes: yield.