我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

在以前的文章中,苏南大叔写过一篇setlist区别的文章(链接见文末)。大家已经知道:set集合具有天然去重的特性,集合内部没有顺序。那么,本文的需求是:计算两个set集合的并集、差集、交集、补集。

苏南大叔:python代码,如何计算两个set的并集差集交集补集? - 集合计算
python代码,如何计算两个set的并集差集交集补集?(图4-1)

大家好,这里是苏南大叔的程序如此灵动博客,这里记录苏南大叔和计算机代码的故事。本文描述set集合的基本操作,求交集差集并集补集。本文测试环境:win10python@3.6.8。值得特别说明的是:本文中的这些set运算结果,仍然是set。那么,set中的特性就是:元素无数序,所以最终结果中对于可能奇怪的顺序不要奇怪。

基本定义

set集合的获得,定义的方式可以有:

  • 可以直接定义。
  • 也可以由list进行转化得到。

那么,本文的测试数据,由下面代码得到:

set1 = {1,3,5,7,9,"苏南大叔","苏南大叔"}
set2 = set([2,3,4,5,"sunan","sunan"])

注意:因为set天然去重,所以这里存在着重复数据被合并的风险。所以,大家可以看到上面的数据中,代码中的数据和最后的结果,是由一定的差异的。

苏南大叔:python代码,如何计算两个set的并集差集交集补集? - 基本变量定义
python代码,如何计算两个set的并集差集交集补集?(图4-2)

并集,差集

并集就是两者联合结果,测试代码是:

print("并集:", set1|set2)
print("并集:", set1.union(set2))

苏南大叔:python代码,如何计算两个set的并集差集交集补集? - 并集和差集
python代码,如何计算两个set的并集差集交集补集?(图4-3)

差集是由主次关系的,所以请注意运算符左右变量顺序。A-B就是:在A中但不在B中。

print("差集:", set1-set2)
print("差集:", set1.difference(set2))
print("差集:", set2-set1)
print("差集:", set2.difference(set1))

交集,补集

交集就是两者所共有的部分,测试代码是:

print("交集:", set1&set2)
print("交集:", set1.intersection(set2))
intersection翻译出来是“十字路口”的意思。

苏南大叔:python代码,如何计算两个set的并集差集交集补集? - 交集和补集
python代码,如何计算两个set的并集差集交集补集?(图4-4)

补集就是所有的数据中,除去交集的内容。

print("补集:", set1^set2)
print("补集:", set1.symmetric_difference(set2))
symmetric翻译出来是“对称的”的意思。

相关链接

总结

本文以set的定义为起点,着重求解了两个set的并集差集交集补集。每个操作都有符号方式和代码方式两种写法。

类型说明操作符方法
并集两者之合竖线.union()
差集前者有后者没有-.difference()
交集两者共同部分&.intersection()
补集合集减去交集^.symmetric_difference()

更多python经验文章,请点击苏南大叔的博客文章:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   python