Python ジェネレーター オブジェクトの再利用:
ジェネレーターは、Python の強力な機能であり、オンデマンドで遅延計算される値のシーケンスです。ただし、その性質上、発電機は巻き戻すことができません。ジェネレーターを複数回再利用したい場合は、いくつかのオプションがあります:
1.ジェネレーター関数の再起動:
ジェネレーター関数を再実行するだけで、生成プロセスを再度開始できます:
<code class="python">y = FunctionWithYield() for x in y: print(x) y = FunctionWithYield() for x in y: print(x)</code>
2.ジェネレーターの結果の保存:
または、リストやディスク上のファイルなど、メモリーを保持するデータ構造にジェネレーターの結果を保存することもできます。これにより、結果を複数回繰り返すことができます:
<code class="python">y = list(FunctionWithYield()) for x in y: print(x) # Can iterate again: for x in y: print(x)</code>
トレードオフ:
これらのオプションの選択は、特定の要件によって異なります:
本質的には、メモリ使用量と処理時間の間の古典的なトレードオフに直面することになります。どちらかを妥協せずにジェネレーターを「巻き戻す」完璧な解決策はありません。
以上がPython ジェネレーターを複数回再利用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。