重点:切片
【错误示例】
for i in x:
if i==1:
x.remove(i)
由于列表具有自动内存管理功能
在删除列表元素时,Python会自动对列表内存进行收缩并移动列表元素以保证所有元素之间没有空隙。每当插入或删除一个元素之后,该元素位置后面的所有元素的索引就都改变了。
【正确代码】
x = [1,2,1,2,1,1,1]
for i in x[::]://切片
if i == i:
x.remove(i)
或者
x = [1,2,1,2,1,1,1]
for i in range(len(x)-1,-1,-1)
if i == i:
x.remove(i)
【谨记】
代码编写好后必须要经过反复测试,不能满足于几次测试结果正确!
切片详解参考文章:python切片详解