有人能告诉我这里发生了什么事吗

  • 本文关键字:发生了 这里 python
  • 更新时间 :
  • 英文 :


所以我有一个代码:

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个元素已被列表中的最后一个元素所取代。

最新更新