3-集合常用操作-交叉並補
阿新 • • 發佈:2022-03-23
集合常用操作-交叉並補
""" 集合1.difference(集合2) 差集 集合1 - 集合2 """ set1 = {"周杰倫", "王寶強", "李宇春", "斯嘉麗"} set2 = {"周潤發", "劉德華", "李宇春", "斯嘉麗"} # 運算子 # 算set1的差集 print(set1 - set2) # {'王寶強', '周杰倫'} # 算set2的差集 print(set2 - set1) # {'劉德華', '周潤發'} # 方法 # 算set1的差集 print(set1.difference(set2)) # {'周杰倫', '王寶強'} # 算set2的差集 print(set2.difference(set1)) # {'周潤發', '劉德華'}
"""
並集
集合1.union(集合2)
集合1 | 集合2
"""
set1 = {"周杰倫", "李宇春", "王寶強", "斯嘉麗"}
set2 = {"周潤發", "劉德華", "斯嘉麗", "李宇春"}
# 運算子
print(set1 | set2) # {'周杰倫', '劉德華', '李宇春', '王寶強', '斯嘉麗', '周潤發'}
# 方法
print(set1.union(set2)) # {'周杰倫', '周潤發', '李宇春', '斯嘉麗', '王寶強', '劉德華'}
""" 交集 集合1.intersection(集合2) 集合1 & 集合2 """ set1 = {"周杰倫", "李宇春", "王寶強", "斯嘉麗"} set2 = {"周潤發", "劉德華", "斯嘉麗", "李宇春"} # 運算子 print(set1 & set2) # {'斯嘉麗', '李宇春'} # 方法 print(set1.intersection(set2)) # {'斯嘉麗', '李宇春'}
""" 對稱差集:返回兩個集合中不重複的元素集合, 補集情況涵蓋在其中 集合1.symmetric_difference(集合2) 集合1 ^ 集合2 """ set1 = {"周杰倫", "李宇春", "王寶強", "斯嘉麗"} set2 = {"周潤發", "劉德華", "斯嘉麗", "李宇春"} print(set1 ^ set2) # {'劉德華', '周杰倫', '周潤發', '王寶強'} print(set1.symmetric_difference(set2)) # {'劉德華', '周杰倫', '周潤發', '王寶強'} """基於對稱差集就可以很方便的得到補集""" # (A ^ B) & B = A的補集 # (A ^ B) & A = B的補集 set1 = {"周杰倫", "李宇春", "王寶強", "斯嘉麗"} set2 = {"周潤發", "劉德華", "斯嘉麗", "李宇春"} # set1的補集 print((set1 ^ set2) & set2) # {'周潤發', '劉德華'} # set2的補集 print((set1 ^ set2) & set1) # {'周杰倫', '王寶強'}
"""
issuperset 判斷一個集合是否是另一個集合的超集(父集)
issubset 判斷一個集合是否是另一個集合的子集
"""
set1 = {"A", "B", "C", "D"}
set2 = {"A", "D"}
set3 = {"A", "C"}
# 判斷set1是否是set2的父集
print( set1.issuperset(set2)) # True
# 判斷set3是否是set1的子集
print( set3.issubset(set1)) # True
# 判斷set2是否是set3的父集
print( set2.issuperset(set3)) # False
# 判斷set2是否是set3的子集
print( set2.issubset(set3)) # False