◎知识点
两个集合的交集
两个集合的并集
两个集合的差集
两个集合的对称差集
◎脚本练习
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@FileName: set_operator.py
@Function: set mathematical operations
@Author: Zhihe An
@Site: https://chegva.com
@Time: 2021/6/29
"""
"""集合的数学操作"""
"""
1、两个集合的交集
调用方法intersection和使用运算符&是等价的
做交集操作后生成一个新集合,做交集操作的两个集合不变
"""
s1 = {1, 3, 5, 7, 9}
s2 = {2, 3, 6, 7, 10}
print(s1.intersection(s2)) # {3, 7}
print(s1 & s2) # {3, 7}
print(s1) # {1, 3, 5, 7, 9}
print(s2) # {2, 3, 6, 7, 10}
"""
s1.intersection_update(s2)的执行结果:
用s1.intersection(s2)的返回值更新s1,s2不变
方法intersection_update的返回值为None
"""
print(s1.intersection_update(s2)) # None
print(s1) # {3, 7}
print(s2) # {2, 3, 6, 7, 10}
"""
2、两个集合的并集
调用方法union和使用运算符|是等价的
做并集操作后生成一个新集合,做并集操作的两个集合不变
"""
s1 = {1, 3, 5, 7, 9}
s2 = {2, 3, 6, 7, 10}
print(s1.union(s2)) # {1, 2, 3, 5, 6, 7, 9, 10}
print(s1 | s2) # {1, 2, 3, 5, 6, 7, 9, 10}
print(s1) # {1, 3, 5, 7, 9}
print(s2) # {2, 3, 6, 7, 10}
# 注意:不存在方法union_update()
"""
3、两个集合的差集
调用方法difference和使用运算符-是等价的
做差集操作后生成一个新集合,做差集操作的两个集合不变
"""
s1 = {1, 3, 5, 7, 9}
s2 = {2, 3, 6, 7, 10}
print(s1.difference(s2)) # {1, 5, 9}
print(s1 - s2) # {1, 5, 9}
print(s1) # {1, 3, 5, 7, 9}
print(s2) # {2, 3, 6, 7, 10}
"""
s1.difference_update(s2)的执行结果:
用s1.difference(s2)的返回值更新s1,s2不变
方法difference_update的返回值为None
"""
print(s1.difference_update(s2)) # None
print(s1) # {1, 5, 9}
print(s2) # {2, 3, 6, 7, 10}
"""
4、两个集合的对称差集
调用方法symmetric_difference和使用运算符^是等价的
做对称差集操作后生成一个新集合,做对称差集操作的两个集合不变
"""
s1 = {1, 3, 5, 7, 9}
s2 = {2, 3, 6, 7, 10}
print(s1.symmetric_difference(s2)) # {1, 2, 5, 6, 9, 10}
print(s1 ^ s2) # {1, 2, 5, 6, 9, 10}
print(s1) # {1, 3, 5, 7, 9}
print(s2) # {2, 3, 6, 7, 10}
"""
s1.symmetric_difference_update(s2)的执行结果:
用s1.symmetric_difference(s2)的返回值更新s1,s2不变
方法symmetric_difference_update的返回值为None
"""
print(s1.symmetric_difference_update(s2)) # None
print(s1) # {1, 2, 5, 6, 9, 10}
print(s2) # {2, 3, 6, 7, 10}▽ 集合的数学操作
