获得所需输出的替代方法?

时间:2019-06-19 22:56:57

标签: python

代码看起来很冗长,有没有更优雅的方式来解决这个问题,我只是一个初学者。

# NOTE: Don't use any packages, i know it can be solved by importing counter from collections

    d1 = {'a': 100, 'b': 200, 'c':300}
    d2 = {'a': 300, 'b': 200, 'd':400}

    d={}
    for i,j in d1.items():
        for k,l in d2.items():
            if i==k:
                c={i:j+l}
                d.update(c)
    for i,j in d1.items():
        if i not in d:
            d.update({i:j})
    for m,n in d2.items():
        if m not in d:
            d.update({m:n})

预期输出:

output: {'a': 400, 'b': 400, 'c': 300, 'd': 400}

1 个答案:

答案 0 :(得分:4)

执行以下操作:

d1 = {'a': 100, 'b': 200, 'c':300}
d2 = {'a': 300, 'b': 200, 'd':400}

all_keys = list(d1.keys())+list(d2.keys())
d ={}
for k in all_keys:
    d[k] = d1.get(k,0)+d2.get(k,0)

print(d)