Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Generator Functions | Spezifikation des Funktionsrückgabewerts
Python-Funktionen-Tutorial
course content

Kursinhalt

Python-Funktionen-Tutorial

Python-Funktionen-Tutorial

1. Was Ist eine Funktion in Python?
2. Positionsbezogene und Optionale Argumente
3. Beliebige Argumente
4. Spezifikation des Funktionsrückgabewerts
5. Rekursion und Lambda-Funktionen

book
Generator Functions

Eine Generatorfunktion ist eine spezielle Art von Funktion, die das yield-Schlüsselwort anstelle von return verwendet, um eine Sequenz von Werten zu erzeugen. Wenn eine Generatorfunktion aufgerufen wird, gibt sie ein Iterator-Objekt zurück, über das iteriert werden kann, um die Werte einzeln abzurufen.
Der Hauptvorteil von Generatorfunktionen liegt in ihrer Speichereffizienz. Generatorfunktionen erzeugen Werte im Handumdrehen, sobald sie benötigt werden, anstatt die gesamte Sequenz im Voraus zu generieren. Dies macht sie speichereffizient, besonders beim Umgang mit großen Datensätzen oder unendlichen Sequenzen.

Schauen wir uns das Beispiel eines einfachen Generators an. Diese Funktion ist ein Generator, der Logins einzeln aus der gegebenen Liste liefert:

12345678910111213141516
def unique_logins_from_list(login_list): # Iterate over each login in the list for login in login_list: yield login # `yield` the current login # A predefined list of available logins login_list = ["user1", "user2", "user3", "user4", "user5"] # Creating a generator instance from the login list login_generator = unique_logins_from_list(login_list) # Generate and print 5 logins, one at a time for _ in range(5): # Each call to `next()` gives the next login print(next(login_generator))
copy

Das Prinzip eines Generators besteht darin, dass er es ermöglicht, Werte einzeln mittels des yield-Schlüsselworts zurückzugeben, ohne sie alle gleichzeitig im Speicher abzulegen. In unserem Beispiel durchläuft der unique_logins_from_list-Generator die __Liste der Logins, wobei er jeden einzelnen bei yield zurückgibt und an dieser Stelle pausiert. Wenn next() aufgerufen wird, setzt der Generator an der Stelle fort, an der er aufgehört hat, und liefert effizient Werte ohne dass die gesamte Liste gleichzeitig im Speicher gespeichert werden muss. Dies macht Generatoren besonders nützlich für die Verarbeitung großer Datensätze oder Datenströme.

Aufgabe

Swipe to start coding

Erstelle einen Generator, der eindeutige Identifikatoren erzeugt. Die Identifikatoren können zum Beispiel Zeichenketten im Format "ID_1", "ID_2" usw. sein. Jedes Mal, wenn du next() aufrufst, sollte der Generator einen neuen eindeutigen Identifikator zurückgeben.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 4
toggle bottom row

book
Generator Functions

Eine Generatorfunktion ist eine spezielle Art von Funktion, die das yield-Schlüsselwort anstelle von return verwendet, um eine Sequenz von Werten zu erzeugen. Wenn eine Generatorfunktion aufgerufen wird, gibt sie ein Iterator-Objekt zurück, über das iteriert werden kann, um die Werte einzeln abzurufen.
Der Hauptvorteil von Generatorfunktionen liegt in ihrer Speichereffizienz. Generatorfunktionen erzeugen Werte im Handumdrehen, sobald sie benötigt werden, anstatt die gesamte Sequenz im Voraus zu generieren. Dies macht sie speichereffizient, besonders beim Umgang mit großen Datensätzen oder unendlichen Sequenzen.

Schauen wir uns das Beispiel eines einfachen Generators an. Diese Funktion ist ein Generator, der Logins einzeln aus der gegebenen Liste liefert:

12345678910111213141516
def unique_logins_from_list(login_list): # Iterate over each login in the list for login in login_list: yield login # `yield` the current login # A predefined list of available logins login_list = ["user1", "user2", "user3", "user4", "user5"] # Creating a generator instance from the login list login_generator = unique_logins_from_list(login_list) # Generate and print 5 logins, one at a time for _ in range(5): # Each call to `next()` gives the next login print(next(login_generator))
copy

Das Prinzip eines Generators besteht darin, dass er es ermöglicht, Werte einzeln mittels des yield-Schlüsselworts zurückzugeben, ohne sie alle gleichzeitig im Speicher abzulegen. In unserem Beispiel durchläuft der unique_logins_from_list-Generator die __Liste der Logins, wobei er jeden einzelnen bei yield zurückgibt und an dieser Stelle pausiert. Wenn next() aufgerufen wird, setzt der Generator an der Stelle fort, an der er aufgehört hat, und liefert effizient Werte ohne dass die gesamte Liste gleichzeitig im Speicher gespeichert werden muss. Dies macht Generatoren besonders nützlich für die Verarbeitung großer Datensätze oder Datenströme.

Aufgabe

Swipe to start coding

Erstelle einen Generator, der eindeutige Identifikatoren erzeugt. Die Identifikatoren können zum Beispiel Zeichenketten im Format "ID_1", "ID_2" usw. sein. Jedes Mal, wenn du next() aufrufst, sollte der Generator einen neuen eindeutigen Identifikator zurückgeben.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 4
Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
We're sorry to hear that something went wrong. What happened?
some-alt