Python 中的集合与数学中集合的概念是一致的,因此,两个集合可以做数学意义上的交集、并集、差集计算等。集合的运算符或方法如表所示。
集合的运算符:
方法 | 功能描述 |
---|---|
S & T 或 S . intersaction ( T ) | 交集。返回一个新集合,包括同时在集合 S 和 T 中的元素 |
S|T 或 S . union ( T ) | 并集。返回一个新集合,包括集合 S 和 T 中的所有元素 |
S - T 或 S . difference ( T ) | 差集。返回一个新集合,包括在集合 S 中但不在集合 T 中的元素 |
S^T或 s . symmetric _ difference _ update ( T ) | 补集。返回一个新集合,包括集合 S 和 T 中的元素,但不包括同时在其中的元素 |
s <= T 或 S . issubset ( T ) | 子集测试。如果 S 与 T 相同或 S 是 T 的子集,返回 True ,否则返回 False 。可以用 S < T 判断 S 是否是 T 的真子集 |
S >=Т或 S . issuperset (T) | 超集测试。如果 S 与 T 相同或 S 是 T 的超集,返回 True ,否则返回 False 。可以用 S > T 判断 S 是否是 T 的真超集 |
可能有人对超集有些陌生,这里给个定义:
超集定义:如果一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S1就是S2的一个超集,反过来,S2是S1的子集。 S1是S2的超集,若S1中一定有S2中没有的元素,则S1是S2的真超集,反过来S2是S1的真子集。
例 5-16 集合的运算:
>>> aset = set([10,20,30])
>>> bset = set([20,30,40])
>>> set1 = aset&bset #交集运算
>>> set2 = aset|bset #并集运算
>>> set3 = aset-bset #差集运算
>>> set4 = aset^bset #补集运算
>>> set1
{20, 30}
>>> set2
{20, 40, 10, 30}
>>> set3
{10}
>>> set4
{40, 10}
>>> set1<aset #子集测试
True
>>> aset<set2 #超集测试
True
>>> aset>set2
False
关于超集的介绍来源于百度百科
https://baike.baidu.com/item/%E8%B6%85%E9%9B%86/1059571?fr=aladdin