Generatorfunktionen
Eine Generatorfunktion ist eine spezielle Art von Funktion, die das Schlüsselwort yield anstelle von return verwendet, um eine Sequenz von Werten zu erzeugen. Beim Aufruf einer Generatorfunktion wird ein Iterator-Objekt zurückgegeben, das überiteriert 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 speichersparend, insbesondere beim Umgang mit großen Datensätzen oder unendlichen Sequenzen.
Betrachten Sie ein einfaches Generator-Beispiel. Diese Funktion liefert Logins einzeln aus der angegebenen Liste:
12345678910111213141516def 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))
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 iteriert der Generator unique_logins_from_list durch die Liste der Logins und gibt jeden einzelnen bei yield zurück und pausiert an dieser Stelle. Bei jedem Aufruf von next() setzt der Generator die Ausführung an der letzten Stelle fort und liefert effizient Werte ohne die gesamte Liste gleichzeitig im Speicher halten zu müssen. Dies macht Generatoren besonders nützlich für die Verarbeitung großer Datenmengen oder Datenströme.
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.
- Initialisieren der Variablen
countmit dem Wert 1, da die Bezeichner bei 1 beginnen. - Verwenden einer endlosen
while-Schleife, um fortlaufend Bezeichner zu generieren. - Mit
yieldwird der aktuelle Bezeichner im Formatf"ID_{count}"zurückgegeben. - Inkrementieren von
countum 1 nach jeder Iteration. - Initialisieren des Generatorobjekts
id_gendurch Aufruf vonid_generator().
Lösung
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 4.17
Generatorfunktionen
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. Beim Aufruf einer Generatorfunktion wird ein Iterator-Objekt zurückgegeben, das überiteriert 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 speichersparend, insbesondere beim Umgang mit großen Datensätzen oder unendlichen Sequenzen.
Betrachten Sie ein einfaches Generator-Beispiel. Diese Funktion liefert Logins einzeln aus der angegebenen Liste:
12345678910111213141516def 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))
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 iteriert der Generator unique_logins_from_list durch die Liste der Logins und gibt jeden einzelnen bei yield zurück und pausiert an dieser Stelle. Bei jedem Aufruf von next() setzt der Generator die Ausführung an der letzten Stelle fort und liefert effizient Werte ohne die gesamte Liste gleichzeitig im Speicher halten zu müssen. Dies macht Generatoren besonders nützlich für die Verarbeitung großer Datenmengen oder Datenströme.
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.
- Initialisieren der Variablen
countmit dem Wert 1, da die Bezeichner bei 1 beginnen. - Verwenden einer endlosen
while-Schleife, um fortlaufend Bezeichner zu generieren. - Mit
yieldwird der aktuelle Bezeichner im Formatf"ID_{count}"zurückgegeben. - Inkrementieren von
countum 1 nach jeder Iteration. - Initialisieren des Generatorobjekts
id_gendurch Aufruf vonid_generator().
Lösung
Danke für Ihr Feedback!
single