您所看到的是, 解释器
next()除了回显
i每次迭代外,还回显了返回值:
>>> a = iter(list(range(10)))>>> for i in a:... print(i)... next(a)... 0123456789
所以
0是的输出
print(i),
1从返回值
next(),通过交互式解释回荡,等,有仅5次迭代,产生2行每次迭代被写入到所述终端。
如果您分配
next()事物的输出按预期工作:
>>> a = iter(list(range(10)))>>> for i in a:... print(i)... _ = next(a)... 02468
或打印 额外的 信息以区分
print()输出与交互式解释器回显:
>>> a = iter(list(range(10)))>>> for i in a:... print('Printing: {}'.format(i))... next(a)... Printing: 01Printing: 23Printing: 45Printing: 67Printing: 89
换句话说,
next()它按预期方式工作,但是由于它从迭代器返回下一个值,并由交互式解释器回显,因此您被认为是循环以某种方式拥有自己的迭代器副本。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)