我有一个remove dictionary from list的扩展问题,除了我有一个我想从列表中删除的字典键列表。
所以,我有类似的东西:
a=[{'id': 1, 'name': 'paul'},{'id': 2, 'name': 'john'},{'id': 3, 'name': 'john2'},{'id': 4, 'name': 'johnasc'}]
现在,我有一个del_list,就像这样:
del_id_list=[2,4]
从[{1}}的{{1}}中删除a
字典的有效方法(假设列表id
是大的)是什么?
答案 0 :(得分:2)
单向,使用列表推导重新创建列表(并将del_id_list
声明为set
以加快查找速度):
a=[{'id': 1, 'name': 'paul'},{'id': 2, 'name': 'john'},{'id': 3, 'name': 'john2'},{'id': 4, 'name': 'johnasc'}]
del_id_list={2,4}
new_a = [d for d in a if d['id'] not in del_id_list]
结果:
[{'id': 1, 'name': 'paul'}, {'id': 3, 'name': 'john2'}]
答案 1 :(得分:0)