我有两本词典,但为了简单起见,我就拿这两个:
>>> x = dict(a=1, b=2)
>>> y = dict(a=2, b=2)
现在,我想比较 x
中的每个 key, value
对在 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))
https://stackoverflow.com/questions/4527942/