【问题标题】:Alternate way to get the desired output? [duplicate]获得所需输出的替代方法? [复制]
【发布时间】:2019-06-19 22:56:57
【问题描述】:

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

# 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}

【问题讨论】:

  • 差别不大,但您可以合并前两个 for i,j in d1.items(): 循环。

标签: python


【解决方案1】:

做这样的事情:

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-12
    • 2022-01-22
    • 1970-01-01
    • 2013-10-16
    • 2021-05-24
    相关资源
    最近更新 更多