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
yieldzu 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.