1. 程式人生 > 實用技巧 >python - 集合(set)

python - 集合(set)

# 作用: 關係運算
# 定義集合:{}內用逗號分隔,每個元素都必須是不可變型別,元素不能重複,無序

s = {1, 2, 3, 1}
print(s) # 輸出結果: {1, 2, 3}

# 長度len
print(len(s)) # 輸出結果:3

pythons = {'kek', 'changmin', 'yunhao', 'xiaobai'}
linuxs = {'jialun', 'guoqiang', 'haha', 'changmin'}

# 交集
print(pythons & linuxs) # 輸出結果:{'changmin'}

# 合集
print(pythons | linuxs) # 輸出結果:{'yunhao', 'kek', 'xiaobai', 'jialun', 'guoqiang', 'haha', 'changmin'}

# 對稱差集
print(pythons ^ linuxs) # 輸出結果:{'haha', 'jialun', 'guoqiang', 'yunhao', 'xiaobai', 'kek'}

# 差集
print(pythons - linuxs) # 輸出結果:{'yunhao', 'xiaobai', 'kek'}
print(linuxs - pythons) # 輸出結果:{'guoqiang', 'jialun', 'haha'}

# 父集: 一個集合>,>=另一個集合
s1 = {1, 2, 3}
s2 = {1, 2}
print(s1 >= s2) # 輸出結果:True
print(s1.issuperset(s2))

# 子集: 一個集合<, <=另一個集合
print(s2 <= s1) # 輸出結果:True
print(s2.issubset(s1))
print(s1 - s2) # 輸出結果:{3}
print(s1) # 輸出結果:{1, 2, 3}
print(s1.difference(s2)) # 輸出結果:{3}
print(s1) # 輸出結果:{1, 2, 3}
print(s1.difference_update()) # 輸出結果:None
print(s1) # 輸出結果:{1, 2, 3


print(set('hello')) # 輸出結果:{'e', 'o', 'h', 'l'},相當於for迴圈
print(set({'a':1, 'b':2})) # 輸出結果:{'b', 'a'}

l = ['a', 'b', 'a', 'c', 'b']
print(list(set(l))) # 輸出結果:['b', 'c', 'a'] 將list去重
s3 = {1, 2, 3, 'a'}
print(s3.pop()) # 隨機刪除

s3.add('b')
print(s3) # 輸出結果:{'b', 2, 3, 'a'}

s3.discard('a')
print(s3) # 輸出結果:{'b', 2, 3} 刪除指定值,可刪除不存在的值

# s3.remove('a')
# print(s3) # 輸出結果:{'b', 2, 3} 刪除指點值,不能刪除不存在的值

s5 = {1, 2, 3, 4, 'a'}
s6 = {7, 8, 9}
print(s5.isdisjoint(s6)) # 輸出結果:True 兩個集合沒有共同部分時,返回True,有共同部分時返回False


s7 = {1, 2, 3, 4}
s7.update({6, 7, 8})
print(s7) # 輸出結果:{1, 2, 3, 4, 6, 7, 8}