Python-Generatoren – schreiben Sie supereffizienten Code!
Python-Generatoren sind eine spezielle Art von Funktion, die es Ihnen ermöglicht, eine Folge von Werten zu durchlaufen, ohne die gesamte Folge im Speicher speichern zu müssen. Sie sind ein leistungsstarkes Werkzeug für die Arbeit mit großen Datenmengen oder für die Generierung unendlicher Wertefolgen.
Was unterscheidet sich von einer normalen Funktion?
Eine Generatorfunktion wird wie eine normale Funktion definiert, verwendet jedoch anstelle des Schlüsselworts return das Schlüsselwort yield . Wenn eine Generatorfunktion aufgerufen wird, gibt sie ein Iteratorobjekt zurück, mit dem über die von der Funktion generierten Werte iteriert werden kann.
Warum Generatoren verwenden?
Einer der Hauptvorteile von Generatoren besteht darin, dass sie speichereffizient sind. Da sie jeweils nur einen Wert generieren, können sie große Datensätze oder unendliche Sequenzen verarbeiten, ohne viel Speicher zu verbrauchen.
Ein weiterer Vorteil von Generatoren ist, dass sie träge sind. Das bedeutet, dass sie nur Werte generieren, wenn sie benötigt werden, und nicht alle Werte im Voraus generieren. Dies kann nützlich sein, wenn Sie mit großen Datensätzen arbeiten oder unendliche Sequenzen generieren.
Ok.. wie benutzt man es?
Die folgende Generatorfunktion generiert die Fibonacci-Folge:
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
fib = fibonacci()
print(next(fib)) # 0
print(next(fib)) # 1
print(next(fib)) # 1
print(next(fib)) # 2
for number in fibonacci():
if number > 100:
break
print(number)
Generatoren können auch in Kombination mit anderen Python-Funktionen wie List Comprehensions oder dem Modul itertools verwendet werden, um leistungsstarken und ausdrucksstarken Code zu erstellen. Sie können es selbst ausprobieren!
Viel Glück, Shilo

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































