Python 字典交集–比较两个字典

系列教程导航

  1. Python 基础教程
  2. 在 SublimeEditor 中配置 Python 环境
  3. Python 代码中添加注释
  4. Python 中的变量的使用
  5. Python 中的数据类型
  6. Python 中的关键字
  7. Python 字符串操作
  8. Python 中的 list 操作
  9. Python 中的 Tuple 操作
  10. Python max()和 min()–在列表或数组中查找最大值和最小值
  11. Python 找到最大的 N 个(前 N 个)或最小的 N 个项目
  12. Python 读写 CSV 文件
  13. Python 中使用 httplib2–HTTP GET 和 POST 示例
  14. Python 将 tuple 开箱为变量或参数
  15. Python 开箱 Tuple–太多值无法解压
  16. Python multidict 示例–将单个键映射到字典中的多个值
  17. Python OrderedDict–有序字典
  18. Python 字典交集–比较两个字典
  19. Python 优先级队列示例

本文提供 Python 示例,演示如何查找两个或多个字典(Dictionary)之间的共同项,即实现字典交集。

1. 使用 & 运算符进行字典交集

最简单的方法是使用 & 运算符来查找两个字典之间键(keys)、值(values)或项(items)的交集。

a = { 'x' : 1, 'y' : 2, 'z' : 3 }
b = { 'u' : 1, 'v' : 2, 'w' : 3, 'x' : 1, 'y': 2 }

# 查找键的交集
set(a.keys()) & set(b.keys()) 
# 输出:{'y', 'x'}

# 查找项的交集
set(a.items()) & set(b.items()) 
# 输出:{('y', 2), ('x', 1)}

2. 使用集合 intersection() 方法

intersection() 方法返回一个集合,其中包含集合 A 和集合 B 中都存在的项。

a = { 'x' : 1, 'y' : 2, 'z' : 3 }
b = { 'u' : 1, 'v' : 2, 'w' : 3, 'x' : 1, 'y': 2 }

setA = set(a)
setB = set(b)

setA.intersection(setB) 
# 输出:{'y', 'x'}

for item in setA.intersection(setB):
    print(item)
    
# x
# y

如果您有关于在 Python 中检查两个字典是否具有相同的键或值的问题,欢迎留言讨论。

学习愉快!

说明

注:本文部分代码示例(如 print 语句及集合输出格式)基于 Python 2 语法。在 Python 3 环境中,print 需作为函数调用(即 print()),且集合的字符串表示形式可能略有差异(如 {'x', 'y'})。核心逻辑在不同版本中保持一致。