How to do an 'inner join' with dictionaries

Antoon Pardon apardon at forel.vub.ac.be
Mon Feb 27 08:56:44 EST 2006


Op 2006-02-27, cyborg4 at walla.co.il schreef <cyborg4 at walla.co.il>:
> Let's say I have two dictionaries:
> dict1 is  1:23,  2:76,  4:56
> dict2 is  23:A, 76:B,  56:C
>
> How do I get a dictionary that is
> 1:A, 2:B, 4:C

Well how about the straight forward:

dict3 = {}
for key, value in dict1.iteritems():
    try:
        dict3[key] = dict2[value]
    except KeyError:
        pass

Or otherwise with a genexp

dict3 = dict((key, dict2[value]) for (key, value) in dict1.iteritems() if value in dict2)

-- 
Antoon Pardon
    



More information about the Python-list mailing list