添加两个整数字典

时间:2017-12-07 01:35:09

标签: python python-3.x

我认为我有正确的想法来解决这个功能,但它没有得到docstring中显示的所需结果我测试它。有人可以帮我解决这个问题吗?

def add_dicts(d1, d2):
'''(dict, dict) -> dict
Parameters d1 and d2 are dicts where each key is an int and each value is an 
int. Return dict d1 with the contents of d2 added to d1. More concisely, if 
key k is in d1 and in d2, update d1[k] to be the sum of d1[k] and d2[k]. If 
d2 has a key that is not in d1, add the key value pair from d2 to d1.
>>> d1 = {1:1, 2:1, 3:2}
>>> d2 = {1:3, 3:1, 4:1}
>>> d = add_dicts(d1, d2)
>>> d == {1:4, 2:1, 3:3, 4:1}
True
'''
for (key, value) in d1.items():
    if key in d1 and key in d2:
        d1[key] = d1[key] + d2[key]
        if key in d2 and key not in d1:
            d1[key] = {key: value}
return d1

2 个答案:

答案 0 :(得分:2)

不是迭代d1项,而是迭代d2

for a, b in d2.items():
   if a in d1:
      d1[a] += b
   else:
      d1[a] = b

答案 1 :(得分:1)

dict.get找不到密钥时,您可以使用0功能使用默认值d1

for key, val in d2.items():
    d1[key] = d1.get(key, 0) + val