所以我有一个代码:
l = [1,2,3,34]
for l[1] in l:
pass
print(l)
出于某种原因,我会是[1,34,3,34]我不太确定这里发生了什么。
想想:
for l[1] in l:
pass
作为
for x in l:
pass
其中CCD_ 1一个接一个地绑定到循环变量CCD_。这里,这些是l
的元素。最后一个坚持!因此,循环将l[1]
设置为34
。
如果你这样做,这将变得更加明显:
for l[1] in l:
print(l[1])
1
1
3
34
其中可以看到第一次迭代将第二个元素(l[1]
(设置为第一个元素。然后,所有后续迭代都用下一个元素覆盖l[1]
。
man我建议您正确命名变量。试着检查python的zen并练习"可读性计数"。好的,如果你试图使用for循环打印每个项目,那么试试这个l=[1,2,34]对于l中的项目:打印(项目(
这就像你将l[1]设置为你正在迭代的项目,扔到列表中,最后一个项目是34,所以l[1]值在第一次迭代中是1,在第二次迭代中又是1,第三次迭代中为3,最后一次迭代为34,这就是最终答案[1,34,3,34]
正如我所看到的,在这个循环中,您选择了列表中的一个元素,并用同一列表中的最后一个元素替换了它。我想出了另一个例子:
l = [1,2,3,4,5,61]
for l[3] in l:
pass
print(l)
随后打印的以下列表:
[1, 2, 3, 61, 5, 61]
如您所见,第4个元素已被列表中的最后一个元素所取代。