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)打印结果可以印证
解决结果: 暂时使用反向条件添加到新列表, 不使用循环判定删除元素的方式
推荐阅读
- 热闹中的孤独
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 由浅入深理解AOP
- 异地恋中,逐渐适应一个人到底意味着什么()
- 【译】20个更有效地使用谷歌搜索的技巧
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售