(我是 Python 新手!) 试图弄清楚这个家庭作业问题: 该函数将采用两个字典作为输入,每个字典将字符串映射到整数。该函数将返回一个字典,该字典将两个输入字典中的字符串映射到两个输入字典中的整数之和。
我的想法是这样的:
def add(dicA,dicB):
dicA = {}
dicB = {}
newdictionary = dicA.update(dicB)
但是,这会返回 None
。
在教授的例子中:
print(add({'alice':10, 'Bob':3, 'Carlie':1}, {'alice':5, 'Bob':100, 'Carlie':1}))
输出是:
{'alice':15, 'Bob':103, 'Carlie':2}
我的问题确实是我不明白如何将每个词典中的值相加。我知道字典不支持“+”。我不想找任何人帮我做功课,但如果有任何建议,我将不胜感激!
最佳答案
来自documentation :
update([other])
Update the dictionary with the key/value pairs from
other
, overwriting existing keys. ReturnNone
.
您不想替换键/值对,您想要为相似的键添加值。遍历每个字典并将每个值添加到相关键:
def add(dicA,dicB):
result = {}
for d in dicA, dicB:
for key in d:
result[key] = result.get(key, 0) + d[key]
return result
result.get(key, 0)
将检索现有 key
的值或生成 0
如果 key
还不存在。
关于python - 合并 2 个字典中的值 (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36391172/