如何在python中结合这两个字典

时间:2019-05-28 20:25:13

标签: python dictionary

我有两个字典:

d1 ={'2017-01': 1, '2017-03': 310, '2017-04': 234, '2017-05': 91, '2017-06': 54, '2017-07': 69, '2017-08': 51, '2017-09': 80, '2017-10': 41, '2017-11': 80, '2017-12': 138, '2018-01': 414, '2018-02': 529, '2018-03': 195, '2018-04': 280, '2018-05': 544, '2018-06': 283, '2018-07': 375, '2018-08': 845, '2018-09': 1853, '2018-10': 295, '2018-11': 275, '2018-12': 199, '2019-01': 510, '2019-02': 1148, '2019-03': 172, '2019-04': 117, '2019-05': 134}

d2= {'2017-05': 1, '2017-08': 4, '2017-10': 1, '2017-11': 1, '2017-12': 3, '2018-01': 3, '2018-02': 4, '2018-03': 2, '2018-04': 6, '2018-05': 4, '2018-06': 7, '2018-07': 3, '2018-08': 16, '2018-09': 13, '2018-10': 6, '2018-11': 4, '2018-12': 1, '2019-01': 3, '2019-02': 5, '2019-03': 3, '2019-05': 2}

如果d2键与d1键相同,我要打印结果,将d2值添加到d1 2017-05 1 91 如果d2键不在d1中,则输出,只需将d1加0,并保持d1值即可。 2017-01 0 1

如何在python中做到这一点?

谢谢

1 个答案:

答案 0 :(得分:2)

您可以使用字典理解:

{key: d1[key] + d2.get(key, 0) for key in d1}
# {'2017-01': 1, '2017-03': 310, '2017-04': 234, '2017-05': 92, ...

请注意,如果找不到给定的get,则使用字典key方法可以设置默认值。在这种情况下,我们可以将其设置为0,以便在d1中不包含key时,d2中的值保持不变。