Python 資料結構詳解 集合

2021-09-29 18:22:13 字數 2045 閱讀 5991

在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...