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>
選択肢これらのオプションの間は、プログラムの特定の要件によって異なります。オプション 1 は、小規模なジェネレーターの場合、またはジェネレーター関数の再実行に計算コストがかからない場合に、より効率的です。オプション 2 は、結果をメモリに保存することが可能な大規模なジェネレーターに適しています。
以上がPython でジェネレーター オブジェクトをリセットするには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。