1. 程式人生 > 其它 >python筆記 -- set集合

python筆記 -- set集合

一、概念

集合(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'}