在Python中合并2个词典

Joe*_*Joe 2 python dictionary mutable

我有2本词典.

dict1={('SAN RAMON', 'CA'): 1, ('UPLAND', 'CA'): 4, ('POUGHKEESIE', 'NY'): 3, ('CATTANOOGA', 'TN'): 1}

dict2={('UPLAND', 'CA'): 5223, ('PORT WASHING', 'WI'): 11174, ('PORT CLINTON', 'OH'): 6135, ('GRAIN VALLEY', 'MO'): 10352, ('GRAND JUNCTI', 'CO'): 49688, ('FAIRFIELD', 'IL'): 5165}
Run Code Online (Sandbox Code Playgroud)

这些只是样本,实际上每个dict都有数百个条目.我正在尝试合并两个字典并创建包含{dict1.values():dict2.values()}的字典3,但前提是该字母出现在两个字典中.所以,dict3中的一个条目看起来像

{4:5223}   # for 'UPLAND', 'CA' since it appears in both dict1 and dict2
Run Code Online (Sandbox Code Playgroud)

这只是我写的更大功能中的一小步.我打算尝试类似的东西:

for item in dict1.keys():
        if item not in dict2.keys():
            del item
        return dict[(dict1.keys())=(dict2.keys())]
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何确保来自dict1的投诉数量与dict2中引用的同一城市相匹配.

Nul*_*ion 5

这是我认为你想要的(演示):

dict3 = dict((dict1[key], dict2[key]) for key in dict1 if key in dict2)
Run Code Online (Sandbox Code Playgroud)

扩展了一点,它看起来像这样:

dict3 = {}
for key in dict1:
    if key in dict2:
        dict3[dict1[key]] = dict2[key]
Run Code Online (Sandbox Code Playgroud)