所以我有一个代码:
l = [1,2,3,34]
for l[1] in l:
pass
print(l)
由于某种原因,我将是[1,34,3,34] 我不太确定这里发生了什么。
答案 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个元素已被列表中的最后一个元素替代。