注意:列表不能在for循环时使用remove方法
li = [11,22,33,44]
for i in li :
li.remove(i)
print (li)
#输出
[22, 44]
for的运行过程,会有⼀个指针来记录当前循环的元素是哪一个, ⼀开始这个指针指向第0个,然后获取到第0个元素,紧接着删除第0个;这个时候,原来是第一个的元素会⾃动的变成第0个,然后指针向后移动⼀次, 指向1元素;此时原来的1已经变成了0, 原来的2变成了1,出现跳着删除的现象。
pop同样不能再for循环中进行操作,直接会报错。
li = [11,22,33,44]
for i in li :
li.pop(i)
print (li)
#输出报错信息
IndexError: pop index out of range
del同样不能在for循环中进行操作
总结:由于删除元素会导致元素的索引改变, 所以容易出现问题。尽量不要再循环中直接去删除元素,可以把要删除的元素添加到另一个集合中然后再批量删除。