Python集合操作
阿新 • • 發佈:2017-11-19
type 類型 並集 添加 判斷 union cti add 元組
#集合(確定的無序的一組數據)
#基本操作
#創建集合
#空集合
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)
Python集合操作