比较两个默认词典 Python

Compare two defaultdictionaries Python

有没有比双循环更有效的方法来比较两个字典?

for i in d:
    for i2 in d2:
        if i == i2:
            key1 = d.get(i)
            key2 = d2.get(i2)
            print("First key:", key1)
            print("Second key:", key2)

您可以使用dictionary views得到键的交集。它们作为集合运行,这意味着您可以生成它们与 &.

的交集

Python 2:

for key in d.viewkeys() & d2.viewkeys():
    value1 = d[key]
    value2 = d2[key]

Python 3:

for key in d.keys() & d2.keys():
    value1 = d[key]
    value2 = d2[key]

即使您没有字典视图,也不需要使用双循环。您需要做的就是测试密钥是否存在:

for key in d:
    if key in d2:
        value1 = d[key]
        value2 = d2[key]