我目前正在编写代码,我想知道是否有一种方法可以合并字典值并添加它们:
词典示例:
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], ... )
谢谢!
答案 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)