Python удалить дублирующее значение в комбинированном списке словаря
Мне нужна помощь с домашними заданиями. Я должен написать функцию, которая объединяет несколько словарей в новый словарь. Если ключ появляется более одного раза; значения, соответствующие этому ключу в новом словаре, должны быть уникальным списком. В качестве примера это то, что я имею до сих пор:
f = {'a': 'apple', 'c': 'cat', 'b': 'bat', 'd': 'dog'}
g = {'c': 'car', 'b': 'bat', 'e': 'elephant'}
h = {'b': 'boy', 'd': 'deer'}
r = {'a': 'adam'}
def merge(*d):
newdicts={}
for dict in d:
for k in dict.items():
if k[0] in newdicts:
newdicts[k[0]].append(k[1])
else:
newdicts[k[0]]=[k[1]]
return newdicts
combined = merge(f, g, h, r)
print(combined)
Вывод выглядит так:
{'a': ['apple', 'adam'], 'c': ['cat', 'car'], 'b': ['bat', 'bat', 'boy'], 'e' : ['elephant'], 'd': ['dog', 'deer']}
Под клавишей «b» дважды появляется «bat». Как мне удалить дубликаты?
Я посмотрел под фильтром, лямбда, но я не мог понять, как использовать с (может быть, это список в словаре?)
Любая помощь будет оценена. И заранее благодарю за помощь!