Wie forme ich einen Python-Generator für mehrere Iterationen um?

Patricia Arquette
Freigeben: 2024-10-30 04:58:28
Original
550 Leute haben es durchsucht

How to Reshape a Python Generator for Multiple Iterations?

Generatorobjekte in Python zurücksetzen

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:

Option 1: Führen Sie die Generatorfunktion erneut aus

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>
Nach dem Login kopieren

Option 2: Speichern Sie die Generatorergebnisse im Speicher

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>
Nach dem Login kopieren

Überlegungen

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!