Python列表迭代器行为和next(iterator)

Python列表迭代器行为和next(iterator),第1张

Python列表迭代器行为和next(iterator)

您所看到的是, 解释器

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()
它按预期方式工作,但是由于它从迭代器返回下一个值,并由交互式解释器回显,因此您被认为是循环以某种方式拥有自己的迭代器副本。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5645142.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存