在python中,set物件是一組無序且hash值唯一的物件.常用於測試是否包含,去重,以及進行諸如交集,合集,差集,對稱差集等數**算.
正如其它的collection模組一樣,set支援x in set
,len(set)
以及for x in set
操作.作為乙個無序的集合,set不會記錄元素的位置或者插入順序.由此,set不支援索引,切片或者其它序列行為.
目前有兩種內建的set型別,set和frozenset.set是可變的——可以使用add()和move()方法改變內容.由於是可變的,set物件沒有hash值,不能作為字典的關鍵字或者另乙個set的元素.frozenset是不可變以及可hash的——它的內容在建立後不能改變;它就可以作為字典的key或者另乙個set的元素.
set和frozenset使用方式大多是一樣的.他們支援以下操作:
len
(s)# 返回元素的個數
x in s # 判斷x是否在s中
isdisjoint(other)
# 如果和其它的集合交集為空,則返回true
# 是否為子集的判斷
set<= other
set< other
set>= other
set> other
set| other |..
.# 返回並集
set& other &..
.# 返回交集
set- other -..
.# 返回在set中,但不在其它集合中的元素
set^ other # 返回僅在set或者other中的元素
可以通過如下方式更新set:
set
|= other | other |..
.# 將其它集合的元素新增到set中
set&
= other &..
.# 將交集更新set
set-= other |..
.# 更新set,去除set中包含在other中的元素
set^
= other # 更新set,儲存僅在set或者other中的元素
add(
)# 新增元素
remove(
)# 刪除元素, 沒有該元素則報錯
discard(
)# 如果元素在集合中,則刪除元素
pop(
)# 任意刪除乙個元素,集合為空則報錯
clear(
)# 刪除所有元素
a =[1
,2,3
,1,5
,2]a_s =
set(a)
print
(f'a: '
)print
(f'a_s: '
)print
(f'len(a_s): '
)print
(f'1 in a_s: '
)print
(f'1 in a_s: '
)
a: [1, 2, 3, 1, 5, 2]
a_s:
len(a_s): 4
1 in a_s: true
1 in a_s: false
for s in a_s:
print
(s, end=
', '
)
1, 2, 3, 5,
sa =
sb =
sc =
print
(f'sa和sb交集是否為空:'
)print
(f'sa和sc交集是否為空:'
)
sa和sb交集是否為空:false
sa和sc交集是否為空:true
Python資料結構 集合
python語法基礎 一 python語法基礎 二 python語法基礎 三 python資料結構 列表 python資料結構 字典 python資料結構 元組 python 函式 1.集合 集合 set 沒有重複元素且沒有順序的資料結構 定義語法 s set 空集合 s set 增加 add 往集...
Python資料結構集合 set
集合 set,collection翻譯為集合型別或容器,是乙個大概念。集合特性 可變 無序 不重複 可迭代的元素的集合。示例 1 set集合的元素要求必須是可hash的 2 目前所學過的不可hash的型別有 list set bytearray dict 3 元素不可以索引,因為無序 4 set可使...
python 資料結構 Set 集合
student print student 輸出集合,重複的元素被自動去掉 成員測試 if rose in student print rose 在集合中 else print rose 不在集合中 rose 在集合中 set可以進行集合運算 a set abracadabra b set alac...