在删除之前,先看下正序删除的原理
lst =[1,2,3]
for i in lst:
lst.remove(i)
列表中元素在内存中的位置:1 2 3
第一次执行remove(i),删除列表中的第一个元素1,列表中元素在内存中的位置:2 3(注意后面元素的位置往前顶了)
第二次执行remove(i),删除列表中的第二个元素3,列表中元素只剩余2
第三次执行remove(i),删除列表中的第三个元素,但是列表中已经没有了第三个元素,循环退出
如何解决这种问题呢?用以下两种方法:
- 可以将列表lst进行复制成一个新列表new_lst&