引自https://learnku.com/articles/23036/python-deletes-pits-of-multiple-elements-in-the-for-loop
原作者:JeffreyBool
numbers=[1,2,3,4,5,6,7]
for i in lst:
print(i)
numbers.remove(i)
print(lst,"\n")
会得到如下结果:
这是因为当i=1时,列表numbers会删去1,然后2会填补原来1的空位,这时候 2 的 key 就发生了改变.2 的 key 位置就变成了 1 以前的key位置就删不掉了。后面的以此类推。
有以下方法可解决问题:
import copy
lst = [1, 2, 3]
for i in copy.copy(lst):
lst.remove(i)
本文仅用于我加深记忆,不会用于商业目的。