[Tutor] idiomatic way of merging two dictionaries

Alan Gauld alan.gauld at btinternet.com
Wed Nov 4 09:41:38 CET 2009


"Amit Sethi" <amit.pureenergy at gmail.com> wrote

> Hi , I am trying to merge(I am not sure if that is the right term)
> dictionaries like this
> 
> dict1 ={'a':4,'b':3,'v':7,'h':4}
> dict2={'a':5,'v':4,'k':3}
> dict3 would be {'a':[4,5],'b':[3,4],'v':[7,4],'k':[0,3],'h':[4,0]}

I don't know how "idiomatic" it is but I'd probably just go for a for loop

dict3 = {}
for key in set(dict1.keys()+dict2.keys()):    # get the unique keys
     dict3[key] = [dict1.get(key,0),dict2.get(key,0)]

I suspect that in Python 3 you could use the new dict notation 
to do it slightly more neatly.

HTH,


-- 
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/



More information about the Tutor mailing list