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

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都具有的键的值。

最佳答案

以@Mitch的答案为基础,您可以在all中进行比较:

dict1 = {'Class1': 10, 'Class2': 18, 'Class3': 5}
dict2 = {'Class1': 10, 'Class2': 18, 'Class4': 11}
all(dict1[k] == dict2[k] for k in dict1.keys() & dict2.keys())


或者您的情况:

self.assertTrue(all(dict1[k] == dict2[k] for k in dict1.keys() & dict2.keys()))

关于python - 仅在python中的两个字典中比较匹配键的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42303706/

10-12 18:54