-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