【python--集合】增删改 交集 差集 并集 反交集 子集和超集
#
dic = {}
print(type(dic))
se = {}
print(type(se))
se = set()
print(type(se))
#
# # 创建空集合
se = set()
# se = set(iterable)
# 直接创建 集合的元素是不可变的 ---- int str tuple bool
se = {'nihao',999,(1,2,3,6)}
# 集合本身是可变的 集合的元素是不可变的
# 集合是无序的 自动去重
# 列表转集合 自动去重
# 集合的增 -----------------
# add
se = {'nihao',999,(1,2,3,6)}
se.add('女神')
print(se)
# {(1, 2, 3, 6), '女神', 'nihao', 999}
# update
se = {'nihao',999,(1,2,3,6)}
se.update('S')
print(se)
# {(1, 2, 3, 6), 'S', 'nihao', 999}
# 集合的推导式
se = { i for i in range(9) }
print(se)
# {0, 1, 2, 3, 4, 5, 6, 7, 8}
# 集合的删----------------
# remove 删除指定元素
se = {'nihao',999,(1,2,3,6)}
se.remove('nihao')
print(se)
# {(1, 2, 3, 6), 999}
# pop 随即删除一个元素
se = {'nihao',999,(1,2,3,6)}
se.pop() # 不能传参数
print(se)
# clear 清空集合
# se = {'nihao',999,(1,2,3,6)}
# se.clear()
# print(se)
# set()
# del 删除集合
# se = {'nihao',999,(1,2,3,6)}
# del se
# print(se)
# NameError: name 'se' is not defined
# 集合的交集 获取 两个或多个集合的 交集 相同值
# & 或 intersection
se1 = {1,2,3,6,5}
se2 = {9,88,65,5,65}
print(se1 & se2) # {5}
print(se1.intersection(se2)) # {5}
# 集合的并集 两个 或多个 集合 并和在一起
# | 或 union
se1 = {1,2,3,6,5}
se2 = {9,88,65,5,65}
print(se1|se2) # {1, 2, 3, 65, 5, 6, 9, 88}
print(se1.union(se2)) # {1, 2, 3, 65, 5, 6, 9, 88}
# 集合的差集
# - 或 differrence
se1 = {1,2,3,6,5}
se2 = {9,88,65,5,65}
print(se1-se2) # {1, 2, 3, 6}
print(se1.difference(se2)) # {1, 2, 3, 6}
# 集合的反交集 获取 去掉交集的两个集合的并集
# ^ 或者 symmetric_difference
se1 = {1,2,3,6,5}
se2 = {9,88,65,5,65}
print(se1^se2) # {65, 1, 2, 3, 6, 9, 88}
print(se1.symmetric_difference(se2)) # {65, 1, 2, 3, 6, 9, 88}
# 集合的子集和超集
set1 = {1,2,3}
set2 = {1,2,3,4,5,6}
print(set1 < set2) # Ture
print(set1.issubset(set2)) # Ture # 这两个相同,都是说明set1是set2子集。
print(set2 > set1) # Ture
print(set2.issuperset(set1)) # Ture # 这两个相同,都是说明set2是set1超集。
# frozenset 不可变集合 让集合变成不可变类型
s = frozenset('barry')
print(s,type(s)) # frozenset({'a', 'y', 'b', 'r'}) <class 'frozenset'>