为什么我得到这个输出

在上述代码中,我希望输出为0 1 2 3,但输出为0 1 2 2。请帮我为什么? ,它是如何工作的。这是我的问题陈述的代码。

a = [0,1,2,3]
for a[-1] in a:
    print(a[-1])

这是python中的代码,输出为0 1 2 2

eywe5275 回答:为什么我得到这个输出

在这种情况下,您将在迭代列表的同时重新分配列表中的值。如果您在循环中打印出整个列表,则会看到以下内容:

>>> for a[-1] in a:
...   print(a)
...
[0,1,2,0]
[0,1]
[0,2]
[0,2]

如果要遍历列表中的各个项目,则必须以其他方式命名变量,例如:

for item in a:
    print(item)

然后输出便是您期望的0 1 2 3

,

您正在做什么:

>>> for i in a:
...     a[-1] = i
...     print(a[-1])
... 
0
1
2
2

这是因为在每个循环中a [-1]在某种意义上被分配了next(可迭代a)的值。 for循环使其可迭代,然后对该可迭代对象进行下一个调用,然后将其分配给迭代变量。

本文链接:https://www.f2er.com/3132956.html

大家都在问