Skip to main content
 首页 » 编程设计

python之只比较python中两个字典中匹配键的值

2025年05月04日25youxin

简单比较的最pythonic方式是什么:

dict1 = {'Class1': 10, 'Class2': 18, 'Class3': 5} 
dict2 = {'Class1': 10, 'Class2': 18, 'Class4': 11} 
 
for key in dict1: 
    for key2 in dict2: 
        if key == key2: 
            self.assertEqual(dict1[key], dict2[key2]) 

我觉得我的解决方案是做一个嵌套的 for 循环来比较所有 dict2 键与 dict1 中的每个键是低效的。目标是只比较 dict1 和 dict2 的键的值。

请您参考如下方法:

可以得到要迭代比较的关键交集

dict1.keys() & dict2.keys() 

例如,

>>> {k: (dict1[k], dict2[k]) for k in dict1.keys() & dict2.keys()} 
{'Class1': (10, 10), 'Class2': (18, 18)} 
 
# or  
 
>>> for k in dict1.keys() & dict2.keys(): 
        print(dict1[k], dict2[k]) 
 
18 18 
10 10