python3-集合set


# Auther: Aaron Fan

'''
集合是一個無序的,不重復的數據組合,它的主要作用如下:
去重,把一個列表變成集合,就自動去重了
關系測試,測試兩組數據之前的交集、差集、並集等關系
'''

list_1 = [1,3,4,7,3,6,7,9]
#去重
list_1 = set(list_1)

list_2 = set([2,6,0,66,22,8,4])
list_3 = set([1,3,7])
print(list_1)
print(list_2)
print(list_3)
print("---------------------------")

#關系測試
#交集(兩個列表里面都有的值,這里是4、6):
print(list_1.intersection(list_2))

#並集(把兩個列別合並起來,然后去重):
print(list_1.union(list_2))

#差集(把list_1里面有的而list_2里面沒有的取出來):
print(list_1.difference(list_2))
#對稱差集(兩個列表里面,互相沒有的取出來,也就是只去掉那些互相都有的值)
print(list_1.symmetric_difference(list_2))

#子集(判斷list_1是否包含了list_3里面的所有值)
print(list_3.issubset(list_1))
#父集(判斷list_1是否為list_3的父集)
print(list_1.issuperset(list_3))

#無交集(判斷list_3和list_4是否完全沒有任何交集)
list_4 = set([5,6,8])
print(list_3.isdisjoint(list_4))

#-----------------------關系測試的另一種寫法:
'''
s = set([3,5,9,10]) #創建一個數值集合

t = set("Hello") #創建一個唯一字符的集合


a = t | s # t 和 s的並集

b = t & s # t 和 s的交集

c = t – s # 求差集(項在t中,但不在s中)

d = t ^ s # 對稱差集(項在t或s中,但不會同時出現在二者中)

基本操作:

t.add('x') # 添加一項

s.update([10,37,42]) # 在s中添加多項



使用remove()可以刪除一項:

t.remove('H') #有就刪除,沒有就報錯
t.pop() #隨機彈出一個
t.discard('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”的一個淺復制
'''


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM