ホームページ  >  記事  >  バックエンド開発  >  複数の反復のために Python ジェネレーターを再構成するにはどうすればよいですか?

複数の反復のために Python ジェネレーターを再構成するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-30 04:58:28551ブラウズ

How to Reshape a Python Generator for Multiple Iterations?

Python でのジェネレーター オブジェクトのリセット

Python のジェネレーターは、データを遅延評価して、一度に 1 つずつ値を生成する効率的な方法です。ただし、ジェネレーターは 1 回しか反復できません。ジェネレーターを複数回繰り返す必要がある場合は、いくつかのオプションがあります。

オプション 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 でジェネレーター オブジェクトをリセットする最良の方法は、そのコンテキストによって異なります。使用されています。

以上が複数の反復のために Python ジェネレーターを再構成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。