python代码,如何计算两个set的并集差集交集补集?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
在以前的文章中,苏南大叔写过一篇set
和list
区别的文章(链接见文末)。大家已经知道:set
集合具有天然去重的特性,集合内部没有顺序。那么,本文的需求是:计算两个set集合的并集、差集、交集、补集。
大家好,这里是苏南大叔的程序如此灵动博客,这里记录苏南大叔和计算机代码的故事。本文描述set
集合的基本操作,求交集差集并集补集。本文测试环境:win10
,python@3.6.8
。值得特别说明的是:本文中的这些set
运算结果,仍然是set
。那么,set
中的特性就是:元素无数序,所以最终结果中对于可能奇怪的顺序不要奇怪。
基本定义
set
集合的获得,定义的方式可以有:
- 可以直接定义。
- 也可以由
list
进行转化得到。
那么,本文的测试数据,由下面代码得到:
set1 = {1,3,5,7,9,"苏南大叔","苏南大叔"}
set2 = set([2,3,4,5,"sunan","sunan"])
注意:因为set
天然去重,所以这里存在着重复数据被合并的风险。所以,大家可以看到上面的数据中,代码中的数据和最后的结果,是由一定的差异的。
并集,差集
并集就是两者联合结果,测试代码是:
print("并集:", set1|set2)
print("并集:", set1.union(set2))
差集是由主次关系的,所以请注意运算符左右变量顺序。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
翻译出来是“十字路口”的意思。
补集就是所有的数据中,除去交集的内容。
print("补集:", set1^set2)
print("补集:", set1.symmetric_difference(set2))
symmetric
翻译出来是“对称的”的意思。
相关链接
总结
本文以set
的定义为起点,着重求解了两个set
的并集差集交集补集。每个操作都有符号方式和代码方式两种写法。
类型 | 说明 | 操作符 | 方法 |
---|---|---|---|
并集 | 两者之合 | 竖线 | .union() |
差集 | 前者有后者没有 | - | .difference() |
交集 | 两者共同部分 | & | .intersection() |
补集 | 合集减去交集 | ^ | .symmetric_difference() |
更多python
经验文章,请点击苏南大叔的博客文章:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。