私は2つの発電機を得るために、私はフィルタリングすることができ、私はその後イテレータ内のデータを他の2つに迂回する方法はありますか?
x1, x2 = itertools.tee(x)
を使用して、イテレータをコピーすることができることを知っている:しかし、その後、私は同じことを実行します
filter(..., x1); filter(..., x2)
を計算は2回、すなわちx1とx2のxを通る。
したがって、私はそのような、より効率的なものだろう:
x1, x2 = divert(into x1 if ... else x2, x)
をこのようなものは、Python 3に存在していますか?
何かばかげたことを言う危険があります - あなたは発電機にとどまって欲しいですか?普通の 'for'-loopで2つのリストを作成するだけです。しかし、あなたは 'x'を不必要に展開したくないと思いますか? – dwanderson
質問が明確であればダンプはありません:-)はい、可能な限り私のメモリを解放するためにジェネレータのアプローチを維持したいと思います。 – Xiphias