我需要一点功课帮助。我必须编写一个将几个字典组合成新字典的函数。如果一个键出现多次;新字典中与该键对应的值应该是唯一列表。作为一个例子,这是我到目前为止所拥有的:
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' :['大象'],'d':['狗','鹿']}
在“b”键下,“bat”出现两次。如何删除重复项?
我查看了过滤器,lambda,但我不知道如何使用 with(也许 b/c 它是字典中的列表?)
任何帮助,将不胜感激。并提前感谢您的所有帮助!