У меня есть сценарий, в котором у меня есть три словаря, которые я хочу объединить в один, но при этом я сравниваю три словаря с ключом name
, если есть дубликаты, необходимо удалить их.
Вот то, что я пробовал:
dict1= {'d1': [{'name': 'app1', 'id': 7134}, {'name': 'app2', 'id': 242}, {'name': 'yest app', 'id': 67},{'name': 'abc jam app', 'id': 6098}]}
dict2= {'d2': [{'name': 'app1 ', 'id': 30}, {'name': 'app2', 'id': 82}, {'name': 'yest app', 'id': 17}]}
dict3= {'d3': [{'name': 'app1', 'id': 70}, {'name': 'app2', 'id': 2582},{'name': 'availabla2z', 'id': 6667}]}
dict2 = {i:j for i,j in dict2.items() if i not in dict1}
dict3 = {i:j for i,j in dict3.items() if i not in dict2}
Но то же самое не дает результатов, и я не уверен, как сравнить три диктанта по этому вопросу. и так как, если вы посмотрите на данные, dict1
имеет элемент 'name': 'app1'
, где такой же элемент присутствует в dict2
, как этот 'name': 'app1 '
(с пробелом), не уверен, как это отформатировать и получить окончательный вариант, как показано ниже.
{'final': [{'name': 'app1 ', 'id': 30}, {'name': 'app2', 'id': 82}, {'name': 'yest app', 'id': 17},{'name': 'abc jam app', 'id': 6098},{'name': 'availabla2z', 'id': 6667}]}