在Python中使用相同的道具过滤两个对象列表

在Python中使用相同的道具过滤两个对象列表,python,arrays,list,object,Python,Arrays,List,Object,我有两个对象列表: 1-列出一个 [{'name': 'Jhon', 'OS': 'Android', 'impact': '1'}, {'name': 'Jhon', 'OS': 'Iphone', 'impact': '1'}, {'name': 'Roger', 'OS': 'Android', 'impact': '1'}, {'name': 'Clev', 'OS': 'Android', 'impact': '2'}] 2-列出两个 [{'name': 'Jhon', 'OS

我有两个对象列表:

1-列出一个

[{'name': 'Jhon', 'OS': 'Android', 'impact': '1'},
 {'name': 'Jhon', 'OS': 'Iphone', 'impact': '1'},
 {'name': 'Roger', 'OS': 'Android', 'impact': '1'},
 {'name': 'Clev', 'OS': 'Android', 'impact': '2'}]
2-列出两个

[{'name': 'Jhon', 'OS': 'Android', 'impact': '3'},
 {'name': 'Roger', 'OS': 'Android', 'impact': '3'}]
我只需要一个列表,删除两个列表中name和OS相等的对象,然后最终列表将如下所示:

[{'name': 'Jhon', 'OS': 'Iphone', 'impact': '1'},
 {'name': 'Clev', 'OS': 'Android', 'impact': '2'}]

您只想检查“name”和“OS”,因此,首先,创建包含项目的辅助列表,将其简化为仅包含这两个键。接下来,对于这两个列表,将在另一个列表中具有等效项的项目进行排序

list1 = [{'name': 'Jhon', 'OS': 'Android', 'impact': '1'},
         {'name': 'Jhon', 'OS': 'Iphone', 'impact': '1'},
         {'name': 'Roger', 'OS': 'Android', 'impact': '1'},
         {'name': 'Clev', 'OS': 'Android', 'impact': '2'}]
list2 = [{'name': 'Jhon', 'OS': 'Android', 'impact': '3'},
         {'name': 'Roger', 'OS': 'Android', 'impact': '3'}]
list1_aux = [{'name': item['name'], 'OS': item['OS']} for item in list1]
list2_aux = [{'name': item['name'], 'OS': item['OS']} for item in list2]

res = [item for item in list1 if {'name': item['name'], 'OS': item['OS']} not in list2_aux]
res += [item for item in list2 if {'name': item['name'], 'OS': item['OS']} not in list1_aux]
res

我看不出这些列表之间有任何关联,假设“数字”是数字的“影响”,你指的是操作系统?我看不出你的问题有任何逻辑。非常感谢