似乎转换它。列表将iter索引移到最后一个元素,为什么?
<Grid VerticalAlignment="Top">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
</Grid>
错误讯息:
追踪(最近一次通话): print l.next()
StopIteration异常
答案 0 :(得分:0)
首先,您要创建一个新对象。其次,迭代器对象没有在内存中的所有项目,它按需生成项目,一旦你到达最后,就没有办法回来了。这就是为什么他们称之为一次可迭代的原因。因此,当您在迭代器上调用list
时,您将通过使用迭代器并在列表中保留其项来创建新的列表对象。
为了更好的演示,它会执行以下操作:
In [8]: l = iter([1, 2, 3])
In [9]: x = [item for item in l]
In [10]: x
Out[10]: [1, 2, 3]