Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
462 views
in Technique[技术] by (71.8m points)

python - How to merge two dicts and combine common keys?

I would like to know how if there exists any python function to merge two dictionary and combine all values that have a common key.

I have found function to append two dict, to merge two dict but not to combine its values.

Example:

D1 = [{k1: v01},            {k3: v03}, {k4: v04},}],
D2 = [{k1: v11}, {k2: v12},            {k4: v14},}],

this should be the expected result:

D3 = [
   {k1: [v01, v11]},
   {k2: [     v12]},
   {K3: [v03     ]},
   {k4: [v04, v14]},
 ]
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

There is no built-in function for this but you can use a defaultdict for this:

from collections import defaultdict
d = defaultdict(list)
for other in [d1, d1]:
    for k, v in other.items():
        d[k].append(v)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...