Sobes.tech
Middle

Was sind Iteratoren und Generatoren in Python und worin besteht der Unterschied?

sobes.tech KI

Antwort von AI

Ein Iterator in Python ist ein Objekt, das die Methoden __iter__() und __next__() implementiert. Er ermöglicht das sequenzielle Durchlaufen der Elemente einer Sammlung, ohne alle Daten sofort in den Speicher zu laden.

Ein Generator ist eine spezielle Art von Iterator, der mit Funktionen erstellt wird, die das Schlüsselwort yield oder Generator-Ausdrücke verwenden. Generatoren berechnen Werte faul nach Bedarf, was Speicher spart und die Arbeit mit potenziell unendlichen Sequenzen ermöglicht.

Hauptunterschiede:

  • Ein Iterator ist eine allgemeine Schnittstelle zum sequentiellen Durchlaufen von Elementen.
  • Ein Generator ist eine bequeme Möglichkeit, Iteratoren mit yield zu erstellen.

Beispiel für einen Generator:

def count_up_to(n):
    count = 1
    while count <= n:
        yield count
        count += 1

for number in count_up_to(5):
    print(number)

Hier ist count_up_to ein Generator, der Zahlen von 1 bis n nacheinander zurückgibt.