Python ジェネレーターを複数回再利用するにはどうすればよいですか?

DDD
リリース: 2024-10-31 20:00:02
オリジナル
261 人が閲覧しました

How can I reuse a Python generator multiple times?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!