【发布时间】:2021-11-22 16:10:41
【问题描述】:
我想问是否有任何解决方案省略这个 for 循环 与 one liner 或 anything?
Data = [{"name": "Gill","age": "20", "id":"10001", "gender": "female"}, {"name": "Rakshit", "age": "22", "id":"10002"}]
new_Data = {"id":"10001"}
for i, x in enumerate(Data):
if x['id'] == new_Data['id']:
del Data[i]
【问题讨论】:
-
使用列表理解实际上不可能从现有列表中删除一个元素(或者这不是它们的用途)
-
你当前的实现有问题。迭代列表时不要修改列表(更改其大小)。
-
Data[:] = [d for d in Data if d['id']==new_Data['id']]
标签: python