How to merge and sum value dictionary based on keys tuple in Python

Viewed 51

i have several dictionary.

dict1 = {('a','key2','line1'):[4,5],
('b','key2','line2'):[2,5],
('c','key2','line3'):[3,5],
}

dict2 = {('a','key2','line1'):[5,5],
('b','key2','line2'):[3,5],
('c','key2','line2'):[2,5],
}

dict3 = {('a','key2','line1'):[6,5],
('b','key2','line2'):[2,5],
('c','key2','line2'):[4,5],
}

how to sum value dictionary by key in tuple. i want like this

{(a,key2,line1):[15,5],
(b,key2,line2):[7,5],
(c,key2,line2):[6,5],
(c,key2,line3):[3,5],
}
1 Answers
dictSum = {}
for dct in [dict1, dict2, dict3]:
    for key, (v1,v2) in dct.items():
        dictSum[key] = [dictSum.setdefault(key,[0,5])[0]+v1, 5]
from pprint import pprint
pprint(dictSum)        

gives:

{('a', 'key2', 'line1'): [15, 5],
 ('b', 'key2', 'line2'): [7, 5],
 ('c', 'key2', 'line2'): [6, 5],
 ('c', 'key2', 'line3'): [3, 5]}
Related