list.remove方法在删除元素的时候往往会出现漏删或者索引越界的情况示例如下: 漏删: lst=[9,25,12,36] for i in lst: if i>10: lst.remove(i) print(lst) >>>[9, 12] 那么为什么12被漏删了呢?其实原理很简单,如图: 列表从下标为0开始遍历,遍历到25时,将25删除,返回一个新的列表: 注意,原来的25对应的下标是1,所以系统会从下标为2的地方开始遍历,但是在新列表中,下标为2的地方变成了36,所以12就被跳过了。 解决方法: 只需要判断如果列表中删除元素,就要重新从0开始遍历列表。 lst=[9,25