Python集合操作详解:比较、并集、交集与差集

竹里
竹里
发布时间:2026-10-14 | 4人浏览过
原创

本文详细介绍Python中集合(set)的定义、创建及核心运算。通过示例演示如何比较两个集合的大小关系,并深入解析并集(union)、交集(intersection)和差集(symmetric_difference)的实现方法与操作符。同时涵盖集合在数据去重、快速比对及分析重复项等实际场景中的应用,帮助开发者高效利用集合进行数据处理。

直接通过代码示例来展示Python集合的具体用法。


print({1, 2} > {1}) # True

补充说明:在Python中,集合是一种极为高效的数据比较工具。

对于尚不理解或感到困惑的读者,以下将简要介绍集合的基本概念。

为避免概念过于晦涩导致理解困难,这里不展开过多的理论定义。

请参考以下具体代码示例,通过实例即可直观理解集合的定义及其应用场景。


#变量a是一个集合类型
a = set ()
print ( type (a))
 
#定义一个列表,并存入很多重复的数字
dt = [ 12 , 9 , 2 , 8 , 4 , 9 , 2 , 7 , 4 , 5 , 6 , 11 , 5 , 7 , 5 , 7 , 9 , 8 , 7 , 2 ]
for i in dt: #遍历列表
  a.add(i) #将列表中的每一个元素添加进集合
 
#打印集合,发现,自动去掉重复的数字了
print (a)
 
#5存在于集合中吗?
print ( 5 in a)
 
#遍历集合
for item in a:
  print (item)
 
#将集合转化成列表
set_list = list (a)
print (set_list)
print ( type (set_list))

此外,集合还包含以下几个关键的高级功能:

并集运算

该操作接收两个集合作为参数,返回一个包含两个集合中所有元素的新集合(去重)。可通过 union() 方法实现,对应的操作符为 "|"。

交集运算

该操作接收第二个集合作为参数,返回仅包含同时存在于两个集合中的元素。可通过 intersection 方法实现,对应的操作符为 "&"。

差集运算

该操作用于找出存在于一个集合但不同时存在于两个集合中的元素(即对称差集)。可通过 symmetric_difference 方法实现,对应的操作符为 "-"。

继续观察以下代码示例以加深理解。


a = { 1 , 2 , 3 , 4 , 5 }
b = { 6 , 2 , 3 , 7 }
 
#求a和b的并集,将两组数据中共同存在的数字去除掉后,生成一个不存在重复数字的新集合
print (a.union(b))
 
#求a和b的交集,将两组数据中共有的数字提取出来,并生成一个新的集合,让我们知道这两组数据中哪些数字都存在于两组数据里
print (a.intersection(b))
 
#求a和b的差集,将两组数据中所没有的数字提取出来后,生成一个新的集合
print (a.symmetric_difference(b))
 
#注意:他们的结果取决于谁是调用者,谁是参数,上面的3条例子中,a集合是调用者,b集合是参数
 
#a集合中的所有数字都存在于b集合的话,则返回true, a是调用者,b是参数
print (a.issubset(b))
 
#b集合作为参数,b集合中的所有元素都存在于a集合中的话,返回true
print (a.issuperset(b))
 
#想要知道全部只存在于a集合而不存在于b集合的元素
print (a.difference(b)) #结果是1,4,5
#反之
print (b.difference(a)) #结果是6和7

总结

测试表明,集合不仅可以存储数据,还能直接对其他集合执行操作,其功能远超普通容器。

典型应用场景包括:

1、当需要快速结合并分析两处不同数据时,推荐使用集合。

2、结合后的主要目的通常包括:识别两处数据中的重复项以及差异项。

综上所述:

集合是一种非常高效的数据比较方式。

以上为个人经验总结,希望能为您提供参考。欢迎提出宝贵意见或指正疏漏之处。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表