【发布时间】:2018-12-01 20:14:17
【问题描述】:
我又来问你另一个基本问题。 :) 我想通过 for-loop 更改列表。(抱歉打扰,但我是新人....)
这是第一个脚本:
L=[1,2,3]
i=0
for a in L:
L[i]+=1
i+=1
print(L)
print(a)
我明白了:
L:[2,3,4]
a: 3
这正是我想要的。 但我注意到,如果我将脚本更改为:
L=[1,2,3]
for i in L:
i+=1
print(L)
print(i)
我得到了:
L:[1,2,3]
i:4
我可以理解我必须是 4。但问题是为什么列表 L 没有改变。在我看来,列表中的对象被赋予变量 i。所以变量 i 是可以编辑对象的那个。所以基本上,列表应该改变。但实际上,它保持不变。
谁能解释一下?
谢谢!
【问题讨论】:
-
i只是一个循环变量。为什么您认为更改i应该更改列表中的值? -
根据您的代码 sn-p,列表“L”不应更改,因为“i”只是一个可验证的计数器,每次迭代时都包含“L”中的单个元素。跨度>
-
@Austin,@Sonam Mohite,因为我认为列表中的元素(对象)被赋予了变量 i。这与 i = L[0], i =2 相同。那么L[0]=2
-
@Harry 你可以在上面的链接中找到为什么值没有改变。
-
好的!谢谢!我去看看
标签: python