你可以请我解释一下,我完全迷失在这里。列表奇怪的不明原因
这是我的代码:
def ff(L):
for a in L:
k = L.index(a)
print(k)
b = L.pop(k)
g = b
print(g)
L.insert(k,g)
return L
这是输出:
>>> L = [12,13,14]
>>> ff(L)
0
12
1
13
2
14
[12, 13, 14]
但是,当我这样做:
def ff(L):
for a in L:
k = L.index(a)
print(k)
b = L.pop(k)
g = b + 1
print(g)
L.insert(k,g)
return L
输出:
>>> L = [12,13,14]
>>> ff(L)
0
13
0
14
0
15
[15, 13, 14]
为什么呢?
那么,什么是两个代码示例之间有什么不同?为什么会改变发生的事情? – hankd
我不能说我明白这个问题的细节,但总的来说,当你迭代它时修改列表可能会导致意想不到的结果。 – Kevin