abc = [123,345,678]
var = [{'name':'123, 'age':12},{name:345, 'age':32},{name:789,'age':39}]
如果var ['name']在列表abc中不存在,我想从var中删除字典。
final = [{'name':'123, 'age':12},{name:345, 'age':32}]
我尝试了以下
for i,element in enumerate(abc):
if element['name'] in var.keys():
element['salary'] = '50000'
else:
abc.pop(i)
它删除了一些字典,但留下了一个字典
答案 0 :(得分:4)
这是一个列表理解方法:
final = [v for v in var if v['name'] in abc]
答案 1 :(得分:3)
final = filter(lambda x: x['name'] in abc, var)
答案 2 :(得分:1)
推荐使用集合参考Complexity of *in* operator in Python
set_abc = set(abc)
final = [x for x in var if x['name'] in set_abc]