Python でのジェネレータ オブジェクトのリセット:代替案の探索
ジェネレータは、リストを作成せずに一連の値を反復処理する効率的な方法を提供します。メモリ。ただし、ジェネレーターがすべての値を生成すると、ジェネレーターは使い果たされてしまい、直接再利用することはできません。これにより、Python でジェネレーター オブジェクトをリセットする方法が疑問になります。
残念ながら、ジェネレーターには組み込みのリセット メソッドがありません。ジェネレーターを再利用するには、いくつかのオプションがあります:
各オプションの次のコードの抜粋を検討してください:
オプション1 (ジェネレーター関数を再度実行):
y = FunctionWithYield()
for x in y:
print(x)
y = FunctionWithYield()
for x in y:
print(x)
オプション 2 (ジェネレーターの結果をリストに保存):
y = list(FunctionWithYield())
for x in y:
print(x)
# Can iterate again:
for x in y:
print(x)
これらのオプションの選択は、プログラムの特定の要件によって異なります。オプション 1 は、小規模なジェネレーターの場合、またはジェネレーター関数の再実行に計算コストがかからない場合に、より効率的です。オプション 2 は、結果をメモリに保存することが可能な大規模なジェネレータに適しています。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3