Python 集合set操作

比較

se = {11, 22, 33}
be = {22, 55}
temp1 = se.difference(be)        #找到se中存在,be中不存在的集合,返回新值
print(temp1)        #{33, 11}
print(se)        #{33, 11, 22}

temp2 = se.difference_update(be) #找到se中存在,be中不存在的集合,覆蓋掉se
print(temp2)        #None
print(se)           #{33, 11},

刪除 discard() remove() pop()

se = {11, 22, 33}
se.discard(11)
se.discard(44)  # 移除不存的元素不會報錯
print(se)

se = {11, 22, 33}
se.remove(11)
se.remove(44)  # 移除不存的元素會報錯
print(se)

se = {11, 22, 33}  # 移除末尾元素並把移除的元素賦給新值
temp = se.pop()
print(temp)  # 33
print(se) # {11, 22}

取交集

se = {11, 22, 33}
be = {22, 55}

temp1 = se.intersection(be)             #取交集,賦給新值
print(temp1)  # 22
print(se)  # {11, 22, 33}

temp2 = se.intersection_update(be)      #取交集並更新自己
print(temp2)  # None
print(se)  # 22

判斷

se = {11, 22, 33}
be = {22}

print(se.isdisjoint(be))        #False,判斷是否不存在交集(有交集False,無交集True)
print(se.issubset(be))          #False,判斷se是否是be的子集合
print(se.issuperset(be))        #True,判斷se是否是be的父集合

合併

se = {11, 22, 33}
be = {22}

temp1 = se.symmetric_difference(be)  # 合併不同項,並賦新值
print(temp1)    #{33, 11}
print(se)       #{33, 11, 22}

temp2 = se.symmetric_difference_update(be)  # 合併不同項,並更新自己
print(temp2)    #None
print(se)             #{33, 11}

取並集

se = {11, 22, 33}
be = {22,44,55}

temp=se.union(be)   #取並集,並賦新值
print(se)       #{33, 11, 22}
print(temp)     #{33, 22, 55, 11, 44}

更新

se = {11, 22, 33}
be = {22,44,55}

se.update(be)  # 把se和be合併,得出的值覆蓋se
print(se)
se.update([66, 77])  # 可增加迭代項
print(se)

集合的轉換

se = set(range(4))
li = list(se)
tu = tuple(se)
st = str(se)
print(li,type(li))
print(tu,type(tu))
print(st,type(st))

OUTPUT:
[0, 1, 2, 3] <class 'list'>
(0, 1, 2, 3) <class 'tuple'>
{0, 1, 2, 3} <class 'str'>

基本操作

t.add('x')            # 添加一項 s.update([10,37,42])  # 在s中添加多項


t.remove('H') # 刪除一項

len(s)  # set 的長度

x in s # 測試 x 是否是 s 的成員 

x not in s   # 測試 x 是否不是 s 的成員 

s.issubset(t)  s <= t  # 測試是否 s 中的每一個元素都在 t 中 

s.issuperset(t)  s >= t  # 測試是否 t 中的每一個元素都在 s 中 

s.union(t)  s | t  # 返回一個新的 set 包含 s 和 t 中的每一個元素 

s.intersection(t)  s & t  # 返回一個新的 set 包含 s 和 t 中的公共元素 

s.difference(t)  s - t  # 返回一個新的 set 包含 s 中有但是 t 中沒有的元素 

s.symmetric_difference(t)  s ^ t  # 返回一個新的 set 包含 s 和 t 中不重複的元素 

s.copy()  # 返回 set “s”的一個淺複製 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章