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

时间:2019-06-08 11:04:16

标签: python dictionary merge defaultdict

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

词典示例:

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], ... )

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用int来定义default dictionary

d = collections.defaultdict(int)

然后简单地添加值:

d["1 and 2"] += …

其中是您一直附加到列表中的值。上面的方法起作用是因为int的默认值为0;就像列表的默认值是空列表。

答案 1 :(得分:2)

这里

No

输出

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)