gpt4 book ai didi

python - 如何组合多个字典,在 Python 中对公共(public)键的值求和(并保留值为 0 的值)?

转载 作者:太空宇宙 更新时间:2023-11-04 10:22:53 25 4
gpt4 key购买 nike

<分区>

给定三个字典 d1、d2 和 d3:

d1

{'a':1,'b':2,'c':3, 'd':0)

d2

{'b':76}

d3

{'a': 45, 'c':0}

有一些键名对于不止一个字典是通用的(实际上,它们将代表同一个现实生活中的对象)。其他如d1中的'd'只存在于d2中。我想将所有字典组合在一起,首先先对公共(public)键的值求和,最后是:

{'a':46, 'b':78, 'c':3, 'd': 0}

如果每个字典的大小都相同并且包含相同的键,我可以这样做:

summedAndCombined = {}
for k,v in d1.items():
summedAndCombined[k] = d1[k]+d2[k]+d3[k]

但是一旦它到达 d1 中但不在其他键中的键,它就会崩溃。我们如何实现这一目标?

更新

不是重复的。 collections.Counter 几乎 有效,但如果键 d 的值为零,则结果 Counter 中缺少键 d,它在上面。

In [128]: d1 = {'a':1,'b':2,'c':3, 'd':0}

In [129]: d2 = {'b':76}

In [130]: d3 = {'a': 45, 'c':0}

In [131]: from collections import Counter

In [132]: Counter(d1) + Counter(d2) + Counter(d3)
Out[132]: Counter({'b': 78, 'a': 46, 'c': 3})

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com