在默认字典中添加值 - Python(或合并)

Adding values in a default dictionary - Python (or merging)

我目前正在编写代码,我想知道是否有办法合并字典值并添加它们:

示例词典:

defaultdict(<class 'list'>, {'1 and 2': [181, 343], '2 and 5': [820], '2 and 6': [1], '1 and 3': [332], '1 and 4': [77], '3 and 4': [395], '3 and 5': [823]})

注意:例如,1 和 2 代表员工 ID 1 和 2,而 [181,343] 代表不同项目工作的天数。我想合并他们在项目上一起工作的总天数以获得最终输出。

所以它会导致:

defaultdict(<class 'list'>, {'1 and 2': [524], ... )

谢谢!

您可以使用 int

定义 default dictionary
d = collections.defaultdict(int)

然后简单地添加值:

d["1 and 2"] += …

其中 是您一直附加到列表的值。上面的工作是因为 int 的默认值是 0;比如列表的默认值是空列表。

这里

data = {'1 and 2': [181, 343], '2 and 5': [820], '2 and 6': [1], '1 and 3': [332], '1 and 4': [77], '3 and 4': [395], '3 and 5': [823]}

data_with_sum = {k:sum(v) for k,v in data.items()}
print(data_with_sum)

输出

{'1 and 2': 524, '2 and 5': 820, '2 and 6': 1, '1 and 3': 332, '1 and 4': 77, '3 and 4': 395, '3 and 5': 823}