python資料型別(集合set)

2022-06-10 10:48:11 字數 2293 閱讀 5904

集合

集合是無序的物件集,它和字典一樣使用花括號,但沒有鍵值對的概念。集合屬於可變的資料型別,一般用於保持序列的唯一性—— 也就是同樣的元素僅出現一次。

在使用集合時一定要注意集合的「無序」和「唯一」兩個特點,避免出錯。

一、集合的建立

s = set()  # 建立乙個空集合

s1 = {} # 這是建立乙個空字典,而非集合

print(type(s1))

# s2 = # 建立四個元素的集合

集合的元素是唯一的,當集合出現不唯一的字元時,建立的集合中只會儲存乙個。

set1=

print(set1)

#

注意:布林值true和false在底層分別是以1和0儲存的,因此如果同時出現在集合中的時候,會去掉後面的值。

set2 =     # 去除1

print(set2)

#

二、新增元素

語法:s.add(x)

將元素x新增到集合s中,如果元素存在,則不進行任何操作。

s=

s.add('john')

print(s)

#

三、刪除元素

語法:s.pop()

隨機刪除集合裡的乙個元素。

s = 

s.pop() # 隨機刪除

print(s)

#

語法:s.remove(element)

刪除集合裡指定(element)的值,如值不存在,報錯。

s = 

s.remove('rose')

print(s)

#

四、集合合併

語法:s.update(iterable)

將可迭代物件iterable拼接到s1裡,去重。

s1 = 

s2=s1.update(s2) # 集合拼接

print(s1)

# l1=['rose','john']

s1.update(l1) # 列表拼接

print(s1)

#

五、清空元素

將集合清空,留下乙個空集合set()

s = 

s.clear()

print(s)

# set()

六、集合運算

set1 = 

set2 =

print(set1 - set2)

# print(set1 & set2)

# print(set1 | set2)

# print(set1 ^ set2)

# print(set1 + set2)

# typeerror

集合方法

合集:使用union()方法。(同|運算子)

print(set1.union(set2))

#

交集:使用intersection()方法(同&運算子)

print(set1.intersection(set2))

#

差集:使用difference()方法(同減號運算子)

print(set1.difference(set2))

#

七、集合儲存原理

集合儲存原理同字典儲存原理相似,區別是字典裡的鍵是可雜湊,而集合裡所有元素是可雜湊,即內部通過雜湊函式把值轉換成乙個數字。

v = hash('jack')

print(v) # 8690505197273509452

v1 = hash((11, 22, 33, 44))

print(v1) # 8386256510965472093

目前可雜湊的資料型別:int、bool、str、tuple,而list、set是不可雜湊的。

總結:集合的元素只能是int、bool、str、tuple。

v1=[11,22,33,12,11,99]

v2=set(v1)

print(v2) #(11,22,33,12,11,99)

v1=[11,22,['zhangsan','lisi'],33]

v2=set(v1) #報錯,元素是列表,不可雜湊

集合在底層也採用雜湊演算法,因此集合的查詢效率非常高(資料量大了才明顯),原理在字典中敘述過,可以參考字典2。

python 資料型別set集合

3 集合常用的方法 1 集合中的元素是獨一無二 2 集合不能用 連線符 連線兩個集合 3 集合是可變型別 4 集合是無序的,所以不能切片 5 空集合用set 定義,不能用 定義的是空字典 被刪除的物件不再集合中也不會報錯 print x x x.remove 2 print x x.remove 8...

Python 資料型別 集合(Set)

集合 set 是由乙個或數個形態各異的大小整體組成的,構成集合的事物或物件稱作元素或是成員。也是用 表示 基本功能 進行成員關係測試和刪除重複元素。建立集合的格式如下 變數名 或者set value 注 建立空集合用set 而不是 其它函式 add 元素 新增單個元素 set set.add d u...

資料型別 集合set

一 1 用途 1 去重 2 關係運算 注 集合的目的是將不同的值存放到一起,不同的集合間用來做關係運算,無需糾結於集合中單個值 2 定義方式 在 內用逗號分割開多個元素,其中元素的特點為 1 所有的元素必須是不可變型別 2 集合內元素不能重複 3 集合內元素無序s s set print s 自動去...