python 中使用for in 循环 删除列表元素的问题

原因 【python 中使用for in 循环 删除列表元素的问题】在python中想从类似[{},{},{}]结构的数据中, 指定删除某些元素, 留下剩余的元素
错误代码:

# 数据 list_1 = [{"name": "jack", "age": 10}, {"name": "mark", "age": 12}, {"name": "jones", "age": 14}, {"name": "luck", "age": 15}, {"name": "rechat", "age": 16} ] # 遍历列表, 取age条件判定,pop弹出当前索引的元素 x = 0 for i in list_1: print(x,i) if i["age"] >= 14: list_1.pop(x) x += 1 print(list_1) #循环第一次和第二次,条件不满足,无弹出操作 #循环第三次,在弹出第一个值jones后,luck和rechat的索引各自减1, #由 3和4 变成 2和3 ,但是遍历是按照索引遍历的,在遍历了索引2之后, #会遍历索引3,所以 luck这个元素没有被遍历到, #循环的print(x,i)打印结果可以印证

解决结果: 暂时使用反向条件添加到新列表, 不使用循环判定删除元素的方式

    推荐阅读