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

标签 python dictionary for-loop

简单比较的最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

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

相关文章:

java - 一个单词中元音的数量

Python 嵌套 for 循环行为

python - Mod_wsgi pylons (ckan) 安装不工作

Python 全局列表未更新

python - 在另一个上下文管理器中处理上下文管理器的实例

python - 检查字典数组中的键值对并相应更新另一个列表

python - 根据另外两个列和表在 Pandas 中创建列

c++ - 在 C++ 中正确使用 map 迭代器

python - 你能更新 Python3 的 QPython3 版本吗?

javascript - 使用 JavaScript 从 HTML 表单中删除所有输入标签