【发布时间】:2021-09-13 18:49:53
【问题描述】:
只是出于好奇,我想问一下,为什么 Python 中会出现以下通缉行为?
假设我们有:
a = [1,2,3]
b = [1,2,3]
c = [1,2,3,4]
ai = iter(a)
bi = iter(b)
ci = iter(c)
现在,我希望下面的示例打印 [4],但是,它打印了 []。
for _ in zip(ci, zip(ai, bi)):
pass
print(list(ci))
控制台:
>>> print(list(ci))
[]
但是当我更改外部 zip 的参数时,它会打印出我所期望的 ([4])。
for _ in zip(zip(ai, bi), ci):
pass
print(list(ci))
控制台:
>>> print(list(ci))
[4]
两个示例不应该打印相同的结果吗?谢谢。
【问题讨论】: