【发布时间】:2022-01-08 10:36:23
【问题描述】:
所以在一次测验中,我提出了这个代码块的执行给出了什么问题(下面的那个)。
a = [0, 1, 2, 3]
for a[0] in a:
print(a[0])
我选择了错误,但令我惊讶的是,它确实有效并且能够打印列表中的所有元素。但是怎么做?
首先,获取变量的元素(通常是 i)隐藏了实际变量,我们正在获取数字中的第一个元素,所以它是如何工作的。
【问题讨论】:
-
在每次循环迭代期间,将值分配给 a[0],然后打印 a[0] - 代码是有意义的,即使它可能有点出乎意料。
-
在这种情况下,for 循环在每次迭代时都会覆盖列表的第一个元素。
-
我不会称它为bug - 这是一个有趣的案例。在每次迭代中打印整个
a列表有助于了解发生了什么。 -
你没事,我刚试过。它实际上覆盖了每次迭代的第一个元素值