我有一个清单" a"。执行以下for循环后,列表值被更改
a=[1,2,3]
for a[0] in a:
print(a[0])
print(a) #it prints [3, 2, 3]
答案 0 :(得分:1)
When you write
for i in [1,2,3]:
print i
i = 1 and then 2 and then 3 for each iteration. So if you execute this code
a=[1,2,3]
for a[0] in a:
print a[0]
print a
Output:
1
[1, 2, 3]
2
[2, 2, 3]
3
[3, 2, 3]
You can clearly see that a[0] is first 1, then 2 and finally 3, so 'a' becomes [1,2,3] in the end.
答案 1 :(得分:0)
我想您要显示列表中的所有值。
如果那是你想做的,我建议你像这样使用enumerate
。
a=[1,2,4]
for index, value in enumerate(a):
print(value)
print(a)
因此,列表中的值不会更改。
答案 2 :(得分:0)
以下是您的代码在单个命令中分离的内容。也许通过这种方式你可以更好地了解正在发生的事情:
{{1}}
简而言之:不要使用列表元素作为循环变量来迭代该列表。除了非常特殊的情况外,没有任何意义。