python for循环中 对列表进行删除操作 会出现列表元素删除不干净


指针问题 remove 第一次:a=[1,2,3,4,5]->a=1 第二次:a=[2,3,4,5]->指针发生变法i=3 同理第三次i=5

data = [1, 2, 3, 4, 5]
for i in data:
    data.remove(i)

print(data)
打印结果为:[2, 4, 6]

解决方式 用新的列表代替旧的列表 进行删除操作

from copy import deepcopy

data = [1,2,3,4,5]
old_list = data
new_list = deepcopy(old_list)
for i in old_list:
    new_list.remove(i)
    
print(new_list)    

 

打印结果为:[]