比较两个默认值Python

Pic*_*oll -2 python performance compare defaultdict

是否有更有效的方法来比较两个字典而不是双循环?

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)
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 5

您可以使用字典视图获取键的交集.它们作为集合运行,这意味着您可以生成它们的交集.&

Python 2:

for key in d.viewkeys() & d2.viewkeys():
    value1 = d[key]
    value2 = d2[key]
Run Code Online (Sandbox Code Playgroud)

Python 3:

for key in d.keys() & d2.keys():
    value1 = d[key]
    value2 = d2[key]
Run Code Online (Sandbox Code Playgroud)

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

for key in d:
    if key in d2:
        value1 = d[key]
        value2 = d2[key]
Run Code Online (Sandbox Code Playgroud)