考虑一下:
>>> lst = iter([1,2,3])
>>> next(lst)
1
>>> next(lst)
2
因此,正如预期的那样,推进迭代器是通过改变同一个对象来处理的。
在这种情况下,我希望:
a = iter(list(range(10)))
for i in a:
print(i)
next(a)
跳过第二个元素:对next
的调用应该使迭代器前进一次,然后循环进行的隐式调用应该前进第二次-第二次调用的结果将被赋值给i
。
循环会打印列表中的所有项,而不会跳过任何项。
我的第一个想法是这可能会发生,因为循环对传递的内容调用iter
,这可能会给出一个独立的迭代器-这不是这种情况,因为我们有iter(a) is a
。
那么,为什么next
在这种情况下看起来没有推进迭代器呢?
https://stackoverflow.com/questions/16814984
复制相似问题