如果我执行,
a = iter([1,2,3])
for x in a:
print(x)
if x==1:
z=next(a)
我明白了
1
3
我期望,因为调用next
推进迭代器并跳过2
.
但是在交互模式(命令行)中,如果我删除z=
分配,并且只调用next
,它的行为会非常不同。
>>> a = iter([1,2,3])
>>> for x in a:
... print(x)
... if x==1:
... next(a)
给我
1
2
3
我在 Windows 64 位中使用 Python 3.8.8。这是预期的吗?它只发生在交互模式下。