0

重複の可能性:
Pythonでジェネレータオブジェクトをリセットする

Pythonで次の問題が発生することがよくあります。次のように、さまざまな値を計算するためにいくつかの呼び出しで使用しているジェネレーターがあります。

mygenerator = generate_data()
value1 = compute1(mygenerator)
value2 = compute2(mygenerator)

もちろん、問題は、ジェネレーターが消費されているため、compute2がデータを検出しないことです。だから私はジェネレータを「リスト」することを余儀なくされています:

mygenerator = generate_data()
mylist = listize_generator(mygenerator)
value1 = compute1(mylist)
value2 = compute2(mylist)

この問題を解決する別の方法はありますか?

4

1 に答える 1

0

ジェネレーターの出力を複数のコンシューマーに送信するには、コルーチンが必要です。

http://www.dabeaz.com/coroutines/cobroadcast.py

http://www.dabeaz.com/coroutines/は素晴らしい入門書なので、すべて読むことをお勧めします。

于 2012-10-17T11:21:37.590 に答える