【python--集合】增刪改 交集 差集 並集 反交集 子集和超集
阿新 • • 發佈:2020-07-17
#
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'>