奇怪的 for 循环语句[重复]

2023-11-25

我看到这个 for 循环,但不太明白为什么最后打印的是 2。 为什么不是 3 ?

a = [0, 1, 2, 3]

for a[-1] in a:
    print(a[-1])

out:

0
1
2
2

The for循环使用a[-1] as a 目标变量,从输入可迭代中分配每个值:

for <target> in <iterable>

The for循环分配每个值a列出该目标,a[-1]。发生这种情况also是同一列表中的最后一个元素。

所以清单changes循环中的每一步:

>>> a = [0, 1, 2, 3]
>>> for a[-1] in a:
...     print a
...
[0, 1, 2, 0]  # assigned a[0] == 0 to a[-1] (or a[3])
[0, 1, 2, 1]  # assigned a[1] == 1 to a[-1]
[0, 1, 2, 2]  # assigned a[2] == 2 to a[-1]
[0, 1, 2, 2]  # assigned a[3] == 2 (since the previous iteration) to a[-1]

唯一但最后一次迭代分配 puta[2] into a[3] (or a[-2] into a[-1]),这就是为什么当最后一次迭代发生时,你会看到2 again.

See the for循环语法;它需要一个通用的目标列表对于分配目标,就像赋值语句。您不仅可以在作业中使用简单的名称,也不必在作业中使用简单的名称。for loop.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

奇怪的 for 循环语句[重复] 的相关文章

随机推荐