6
Python列表迭代器行为和next(iterator)
考虑: >>> 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在这种情况下似乎不推进迭代器呢?