你可以請我解釋一下,我完全迷失在這裏。列表奇怪的不明原因
這是我的代碼:
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