
2.4.4 集合的元素运算
可以通过求两个集合的交集(&)、并集(|)、补集(-)、对称补集(^)得到新的集合,也可通过集合的方法实现相同的操作。
1.交集(&)
集合的交集运算是求两个集合set1和set2的公共元素组成的集合,返回集合的元素既在set1中又在set2中。交集运算符是“&”。交集运算也可以用集合的intersection()方法: set1.intersection(set2)或者set1.intersection(set2,set3,…),返回两个或多个集合的公共元素构成的集合。另外,还可以用intersection_update()方法:set1.intersection_update(set2),计算set1和set2公共元素,set1的值变成set1和set2的交集,相当于set1=set1&set2,或者set1=set1.intersection(set2)。

2.并集(|)
集合的并集运算是求两个集合set1和set2的所有元素组成的集合,重合的元素只出现一次,返回集合的元素或者在set1中,或者在set2中。并集运算符是“|”。并集运算也可以用集合的union()方法:set1.union(set2)或者set1.union(set2,set3,…),返回两个或多个集合的所有元素构成的集合。

3.补集(-)
集合的补集运算是求从集合set1中去除set1和set2的公共元素组成的集合,返回集合的元素在set1中,而不在set2中,补集运算符是“-”。补集运算也可以用集合的difference()方法:set1.difference(set2)或者set1.difference(set2,set3,…),返回在set1中但不在set2、set3、…中的元素。另外,还可以用difference_update()方法:set1. difference_update(set2),set1的值变成set1和set2的补集,相当于set1=set1-set2,或者set1=set1.difference(set2)。

4.对称补集(^)
集合的对称补集运算是求两个集合set1和set2的不重复的元素组成的集合,返回集合的元素既在set1中又在set2中,但不在set1和set2的公共部分中。对称补集运算符是“^”,如果两个集合的交集为空,则其对称补集相当于并集。对称补集运算也可以用集合的symmetric_difference()方法:set1.symmetric_difference(set2);或方法symmetric_ difference_update():set1.symmetric_difference_update(set2),相当于set1=set1^set2,或者set1=set1.symmetric_difference(set2)。
