-1
看起來轉換了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
因爲首先,你要創建一個新目的。其次,一個迭代器對象並不具有它在內存中的所有項目,它會根據需要生成項目,並且一旦你完成了就沒有辦法回來了。這就是爲什麼他們稱之爲一次迭代。因此,當您在迭代器上調用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