Generatoren in Python sind eine effiziente Möglichkeit, Daten langsam auszuwerten und Werte einzeln zu liefern. Allerdings können Generatoren nur einmal iteriert werden. Wenn Sie einen Generator mehrmals durchlaufen müssen, gibt es mehrere Optionen:
Die einfachste Möglichkeit, einen Generator zurückzusetzen, besteht darin, den Generator einfach auszuführen Funktion wieder. Dadurch wird ein neues Generatorobjekt erstellt, über das unabhängig iteriert werden kann.
<code class="python">y = FunctionWithYield() for x in y: print(x) y = FunctionWithYield() for x in y: print(x)</code>
Sie können die Generatorergebnisse auch in einer Datenstruktur speichern. B. eine Liste, im Speicher. Dadurch können Sie die Ergebnisse mehrmals durchlaufen.
<code class="python">y = list(FunctionWithYield()) for x in y: print(x) # can iterate again: for x in y: print(x)</code>
Die Wahl der Option hängt von Ihren spezifischen Leistungsanforderungen ab. Option 1 ist aus Speichersicht effizienter, da die Generatorergebnisse nicht gespeichert werden müssen. Allerdings ist Option 2 aus Verarbeitungssicht effizienter, da sie keine erneute Ausführung der Generatorfunktion erfordert.
Letztendlich hängt die beste Möglichkeit zum Zurücksetzen eines Generatorobjekts in Python vom spezifischen Kontext ab, in dem es sich befindet es wird verwendet.
Das obige ist der detaillierte Inhalt vonWie forme ich einen Python-Generator für mehrere Iterationen um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!