Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Generatorfunktionen | Spezifikation des Rückgabewerts Einer Funktion
Python-Funktionen-Tutorial

bookGeneratorfunktionen

Eine Generatorfunktion ist eine spezielle Art von Funktion, die das Schlüsselwort yield anstelle von return verwendet, um eine Sequenz von Werten zu erzeugen. Wird eine Generatorfunktion aufgerufen, gibt sie ein Iterator-Objekt zurück, das durchlaufen werden kann, um die Werte einzeln abzurufen.
Der Hauptvorteil von Generatorfunktionen liegt in ihrer Speichereffizienz. Generatorfunktionen erzeugen Werte bei Bedarf, anstatt die gesamte Sequenz im Voraus zu generieren. Dies macht sie besonders speichereffizient, insbesondere beim Umgang mit großen Datenmengen oder unendlichen Sequenzen.

Betrachten Sie ein einfaches Generator-Beispiel. Diese Funktion gibt Logins einzeln aus der übergebenen Liste zurück:

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 Werte einzeln mit dem Schlüsselwort yield zurückgegeben werden, ohne sie alle gleichzeitig im Speicher zu halten. In unserem Beispiel durchläuft der Generator unique_logins_from_list die Liste der Logins und gibt jeden einzelnen bei yield zurück und pausiert an dieser Stelle. Wird next() aufgerufen, setzt der Generator die Ausführung an der letzten Stelle fort und gibt effizient Werte zurück, ohne die gesamte Liste gleichzeitig im Speicher halten zu müssen. Generatoren sind daher besonders nützlich für die Verarbeitung großer Datenmengen oder Datenströme.

Aufgabe

Swipe to start coding

Erzeugen von eindeutigen Benutzer-IDs mithilfe einer Generatorfunktion. Die Funktion id_generator() soll fortlaufend Bezeichner wie "ID_1", "ID_2" usw. erzeugen.

  1. Initialisierung der Variablen count mit dem Wert 1, da die Bezeichner bei 1 beginnen.
  2. Verwendung einer endlosen while-Schleife, um fortlaufend Bezeichner zu generieren.
  3. Einsatz von yield, um den aktuellen Bezeichner im Format f"ID_{count}" zurückzugeben.
  4. Inkrementieren von count um 1 nach jeder Iteration.
  5. Initialisierung des Generatorobjekts id_gen durch Aufruf von id_generator().

Lösung

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 4
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

Can you explain how the generator resumes execution after each yield?

What happens if I call next() more times than there are items in the list?

Can you show a real-world scenario where using a generator is better than a regular function?

close

Awesome!

Completion rate improved to 4.35

bookGeneratorfunktionen

Swipe um das Menü anzuzeigen

Eine Generatorfunktion ist eine spezielle Art von Funktion, die das Schlüsselwort yield anstelle von return verwendet, um eine Sequenz von Werten zu erzeugen. Wird eine Generatorfunktion aufgerufen, gibt sie ein Iterator-Objekt zurück, das durchlaufen werden kann, um die Werte einzeln abzurufen.
Der Hauptvorteil von Generatorfunktionen liegt in ihrer Speichereffizienz. Generatorfunktionen erzeugen Werte bei Bedarf, anstatt die gesamte Sequenz im Voraus zu generieren. Dies macht sie besonders speichereffizient, insbesondere beim Umgang mit großen Datenmengen oder unendlichen Sequenzen.

Betrachten Sie ein einfaches Generator-Beispiel. Diese Funktion gibt Logins einzeln aus der übergebenen Liste zurück:

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 Werte einzeln mit dem Schlüsselwort yield zurückgegeben werden, ohne sie alle gleichzeitig im Speicher zu halten. In unserem Beispiel durchläuft der Generator unique_logins_from_list die Liste der Logins und gibt jeden einzelnen bei yield zurück und pausiert an dieser Stelle. Wird next() aufgerufen, setzt der Generator die Ausführung an der letzten Stelle fort und gibt effizient Werte zurück, ohne die gesamte Liste gleichzeitig im Speicher halten zu müssen. Generatoren sind daher besonders nützlich für die Verarbeitung großer Datenmengen oder Datenströme.

Aufgabe

Swipe to start coding

Erzeugen von eindeutigen Benutzer-IDs mithilfe einer Generatorfunktion. Die Funktion id_generator() soll fortlaufend Bezeichner wie "ID_1", "ID_2" usw. erzeugen.

  1. Initialisierung der Variablen count mit dem Wert 1, da die Bezeichner bei 1 beginnen.
  2. Verwendung einer endlosen while-Schleife, um fortlaufend Bezeichner zu generieren.
  3. Einsatz von yield, um den aktuellen Bezeichner im Format f"ID_{count}" zurückzugeben.
  4. Inkrementieren von count um 1 nach jeder Iteration.
  5. Initialisierung des Generatorobjekts id_gen durch Aufruf von id_generator().

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
single

single

some-alt