有人可以告诉我这是怎么回事

时间:2020-04-27 10:01:46

标签: python

所以我有一个代码:

l = [1,2,3,34]
for l[1] in l:
    pass
print(l)

由于某种原因,我将是[1,34,3,34] 我不太确定这里发生了什么。

4 个答案:

答案 0 :(得分:1)

考虑:

for l[1] in l:
    pass

for x in l:
    pass

其中l[1]一个接一个地绑定到循环变量x的所有值上。这些是l的元素。最后一根棍子!因此,l[1]被循环设置为34

如果您这样做,这将变得更加明显:

for l[1] in l:
    print(l[1])

1
1
3
34

,您可以看到第一次迭代将第二个元素(l[1])设置为第一个。然后,所有后续迭代都将下一个元素覆盖l[1]

答案 1 :(得分:0)

man我应该建议您正确命名变量。尝试检查python的禅宗并练习“可读性计数”。 好的,如果您尝试使用for循环打印每个项目,请尝试执行此操作 l = [1,2,3,34] 对于l中的项目: 打印(项目)

答案 2 :(得分:0)

这就像您将l [1]设置为要迭代的项目,列表中的最后一个项目是34,因此l [1]的值在第一次迭代中是1,在第二次迭代中是3,在第三次迭代中又是1最后是34,这就是最终答案是[1,34,3,34]

答案 3 :(得分:0)

正如我所看到的,在此循环中,您已经在列表中选择了一个元素,并用同一列表中的最后一个元素替换了它。我想出另一个例子:

l = [1,2,3,4,5,61]
for l[3] in l:
    pass
print(l)

随后打印以下列表:

[1, 2, 3, 61, 5, 61]

如您所见,第4个元素已被列表中的最后一个元素替代。