集合
集合是無序的物件集,它和字典一樣使用花括號,但沒有鍵值對的概念。集合屬於可變的資料型別,一般用於保持序列的唯一性—— 也就是同樣的元素僅出現一次。
在使用集合時一定要注意集合的「無序」和「唯一」兩個特點,避免出錯。
一、集合的建立
s = set() # 建立乙個空集合s1 = {} # 這是建立乙個空字典,而非集合
print(type(s1))
# s2 = # 建立四個元素的集合
集合的元素是唯一的,當集合出現不唯一的字元時,建立的集合中只會儲存乙個。
set1=print(set1)
#
注意:布林值true和false在底層分別是以1和0儲存的,因此如果同時出現在集合中的時候,會去掉後面的值。
set2 = # 去除1print(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 自動去...