iterを変換しているようです。 iterインデックスを最後の要素に移動する理由をリストするには、なぜですか?イテレータをリストに変換する理由イテレータを最後のインデックスに移動する理由
l = iter([1, 2, 3])
x = list(l)
print l.next()
エラーメッセージ:
トレースバック(最新の呼び出しの最後): 印刷l.next()
呼び出すとStopIteration
iterを変換しているようです。 iterインデックスを最後の要素に移動する理由をリストするには、なぜですか?イテレータをリストに変換する理由イテレータを最後のインデックスに移動する理由
l = iter([1, 2, 3])
x = list(l)
print l.next()
エラーメッセージ:
トレースバック(最新の呼び出しの最後): 印刷l.next()
呼び出すとStopIteration
まず、あなたは新しいを作成しているのでオブジェクト。第2に、イテレータオブジェクトは、アイテムをメモリにすべて持っていないため、オンデマンドでアイテムを生成します。一度終了すると戻ってくることはありません。そういうわけで彼らはそれをワンショットと呼ぶのです。そのため、イテレータでlist
を呼び出すと、イテレータを消費してリスト内のアイテムを保持することによって、新しいリストオブジェクトを作成しています。
In [8]: l = iter([1, 2, 3])
In [9]: x = [item for item in l]
In [10]: x
Out[10]: [1, 2, 3]
*** Thanx!*** @Kasramvd – anati
それはそれが何をするかだから:それは次のように何かをするより良いデモンストレーションのために
。イテレータオブジェクトが何であるか知っていますか? – TigerhawkT3
オハイオ州です! ご迷惑をおかけします。 – anati