我有两个字典,但为简单起见,我将采用以下两个字典:

>>> x = dict(a=1, b=2)
>>> y = dict(a=2, b=2)

现在,我想比较key, value中的每个x对在y中是否具有相同的对应值。所以我这样写:
>>> for x_values, y_values in zip(x.iteritems(), y.iteritems()):
        if x_values == y_values:
            print 'Ok', x_values, y_values
        else:
            print 'Not', x_values, y_values

它是有效的,因为返回了tuple,然后比较了相等性。

我的问题:

这样对吗?有一个更好的方法吗?最好不要提速,我是在讲代码优雅。

更新:我忘了提到我必须检查多少对key, value对。

最佳答案

如果您想知道两个字典中有多少个值匹配,您应该说:)

也许是这样的:

shared_items = {k: x[k] for k in x if k in y and x[k] == y[k]}
print len(shared_items)

10-07 23:16