#集合(確定的無序的一組數據) #基本操作 #創建集合 #空集合
var = set() print(var,type(var)) #具有數據的集合
var = {'zhangwang','zhangbo','zhanglang'} print(var,type(var)) #成員檢測
result = 'zhangbo' in var print(result) result = 'zhangsan' not in var print(result) #集合推導式
var = {'螞蚱','螳螂','蟈蟈','蛐蛐'} #基本的集合推導式
result = {'*'+i+'*' for i in var} print(result) #帶有判斷條件的集合推導式
result = {i for i in var if i != '蛐蛐'} print(result) #多循環集合推導式
colors = {'red','blue','pink'} sizes = {36,37,38,39} result = {c + str(s) for c in colors for s in sizes} print(result) #集合函數
''' #add() 向集合中添加元素 girls = {'mf','sl','yj'} girls.add('xf') print(girls) #pop() 隨機刪除集合中的一個元素 boys = {'bd','zw','jl','zy'} result = boys.pop() print(boys) print(result) #remove() 刪除集合中指定的元素 刪除不存在的元素會報錯 boys = {'bd','zw','jl','zy'} boys.remove('zy') print(boys) #discard() 刪除集合中指定的元素 刪除不存在的元素啥都不做 boys = {'bd','zw','jl','zy'} boys.discard('zy1') print(boys) #clear() 清空集合 boys = {'bd','zw','jl','zy'} boys.clear() print(boys) #copy() 復制集合 boys = {'bd','zw','jl','zy'} newboys = boys.copy() print(newboys) '''
#difference() 計算2個集合的差集
dreamers = {'ljl','wc','xy','zb','lsy'} girls = {'mmf','lsy','syj'} result = dreamers.difference(girls)# result = a + b
print(result) #difference_update() 計算2個集合的差集(差集更新操作)
dreamers = {'ljl','wc','xy','zb','lsy'} girls = {'mmf','lsy','syj'} dreamers.difference_update(girls)#a = a + b a += b
print(dreamers) #union() 並集操作
dreamers = {'ljl','wc','xy','zb','lsy'} girls = {'mmf','lsy','syj'} result = dreamers.union(girls) print(result) #update() 並集更新操作
dreamers = {'ljl','wc','xy','zb','lsy'} girls = {'mmf','lsy','syj'} dreamers.update(girls) print(dreamers) #intersection() 計算2個集合的交集
dreamers = {'ljl','wc','xy','zb','lsy'} girls = {'mmf','lsy','syj'} result = dreamers.intersection(girls) print(result) #intersection_update 交集更新操作
dreamers = {'ljl','wc','xy','zb','lsy'} girls = {'mmf','lsy','syj'} dreamers.intersection_update(girls) print(dreamers) #超集和子集
boys = {'zzy','yqw','dw','wzc','lyb','wym','chy'} zoudu = {'wzc','lyb','wym'} girls = {'lsy','mmf','syj'} #issuperset() 檢測當前集合是否是另一個集合的超集
result = boys.issuperset(zoudu) print(result) #issubset() 檢測當前集合是否是另一個集合的子集
result = zoudu.issubset(boys) print(result) #isdisjoint() 檢測2個集合是否不存在交集 存在交集 False
result = boys.isdisjoint(girls) print(result) #symmetric_difference() 對稱差集
dreamers = {'ljl','wc','xy','zb','lsy'} girls = {'mmf','lsy','syj'} result = dreamers.symmetric_difference(girls) print(result) #symmetric_difference_update() 對稱更新差集
dreamers = {'ljl','wc','xy','zb','lsy'} girls = {'mmf','lsy','syj'} dreamers.symmetric_difference_update(girls) print(dreamers) #冰凍集合 #冰凍集合是一種特殊的集合類型,也是集合(集合是列表的話,冰凍集合就是元組) #創建冰凍集合 #一般不會創建空的冰凍集合
var = frozenset() print(var,type(var)) #帶有數據的冰凍集合
var = frozenset(('qs','szx','bjh','acs')) print(var,type(var)) #成員檢測
result = 'szx' in var print(result) #遍歷冰凍集合
for i in var: print(i) #集合推導式(無法得到冰凍集合,可以得到集合,列表,元組,字典類型)
result = {i for i in var} print(result,type(result)) #函數 #冰凍集合可以使用集合的函數(不修改集合本身的函數都可以使用)
var = frozenset(('qs','szx','bjh','acs')) #copy()
result = var.copy() print(result) #集合操作 交集,並集,差集,對稱差集等 不修改冰凍集合本身就能使用:冰凍集合的操作結果都是冰凍集合
var1 = frozenset(('qs','szx','bjh','acs')) var2 = {'szx','bjh','lc','wb'} #冰凍集合操作
result = var1.union(var2) print(result) #普通集合操作(冰凍集合是參考集合)
result = var2.union(var1) print(result)