python - 比较两个字典并检查有多少(键,值)对是相等的

我有两本词典,但为了简单起见,我就拿这两个:

>>> 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/

相关文章:

linux - 如何让 cp 命令创建任何必要的文件夹以将文件复制到目标

python - 如何获取方法参数名称?

python - 如何将 SQLAlchemy 行对象转换为 Python 字典?

python - 从第 2 行读取文件或跳过标题行

linux - 使用 cURL 执行 HTTP 请求(使用 PROXY)

linux - 如何从终端窗口在 Linux 中创建文件?

dictionary - python - 如何使用列表中的键和Python中的空值初始化dict?

linux - 如何从 shell 将一个文件 append 到 Linux 中的另一个文件?

python - 如何在 Django 中创建 slug?

linux - 向进程组的所有成员发送信号的最佳方式是什么?