コンテナーに対して複数の反復を実行する正しい方法は何ですか? Pythonのドキュメントから:
Iterator - コンテナー オブジェクト (リストなど) は、 iter() 関数に渡すか for ループで使用するたびに、新しい反復子を生成します。イテレータでこれを試みると、前のイテレーション パスで使用されたのと同じ使い果たされたイテレータ オブジェクトが返され、空のコンテナのように見えます。
プロトコルの意図は、反復子の next() メソッドが StopIteration を発生させると、後続の呼び出しでも引き続き発生させることです。このプロパティに従わない実装は壊れていると見なされます。(この制約は Python 2.3 で追加されました。Python 2.2 では、この規則に従ってさまざまな反復子が壊れています。)
このコードがある場合:
slist = [1,2,3,4]
rlist = reversed(slist)
list(rlist)
#[4,3,2,1]
tuple(rlist)
#()
「rlist」を 2 回繰り返す最も簡単で正しい方法は何でしょうか?