python筆記 -- set集合
阿新 • • 發佈:2022-03-02
一、概念
集合(set)是由一個或數個形態各異的大小整體組成的,構成集合的事物或物件稱作元素或是成員。
基本功能是進行成員關係測試和刪除重複元素。
可以使用大括號{ }或者set()函式建立集合,注意:建立一個空集合必須用set()而不是{ },因為{ }是用來建立一個空字典
set是一個無序不重複元素值,作為一個無序的集合,set不記錄元素位置或者插入點,因此,set不支援indexing。
二、set對列表去重
mylist = ['Google', 'Taobao', 'Runoob', 'Facebook', 'Runoob', 'Zhihu', 'Baidu', 'Google']
myset = set(mylist) # myset是另外一個列表,裡面的內容是mylist裡面的無重複項
print("去重的效果:", myset)
如果想達到的效果是,去重但是不改變原來的列表順序
mylist = ['Google', 'Taobao', 'Runoob', 'Facebook', 'Runoob', 'Zhihu', 'Baidu', 'Google'] set_list = list(set(mylist)) set_list.sort(key=mylist.index) print("去重不改變原本列表順序的效果:", set_list)
三、基本操作
mylist = ['Google', 'Taobao', 'Runoob', 'Facebook', 'Runoob', 'Zhihu', 'Baidu', 'Google'] myset = set(mylist)
# 新增一項
myset.add('aaa')
# 新增多項
myset.update('1', '2', '3')
# 刪除一項
myset.remove('Google')
# 計算長度
lenth = len(myset) 結果:6
# 成員測試
'Google' in myset 結果:True
'Google' not in myset 結果:False
四、集合運算
a = set('abracadabra') b = set('alacazam')
# 差集
print(a-b) 結果:{'b', 'd', 'r'}
print(b-a) 結果:{'l', 'z', 'm'}
#並集
print(a | b) 結果:{'r', 'c', 'b', 'l', 'a', 'z', 'm', 'd'}
# 交集
print(a & b) 結果:{'a', 'c'}
#a 和 b 中不同時存在的元素
print(a ^ b) 結果:{'m', 'b', 'z', 'd', 'r', 'l'}