3.9.1 介紹
集合是乙個無序且不重複的元素集合。元素必須是可雜湊的(int,str,tuple,bool)。可以把它看作是dic的key的集合。用{}表示。
注意:set集合中的元素必須是可hash的, 但是set本身是不可hash得,set是可變的。
set1 = #報錯,含有列表
set2 = } #報錯,含有字典
set3 = #報錯,含有列表
注意到沒有,元素的元素也必須是可雜湊的。
set的特性,讓它在除重的應用中使用方便。
一行**給列表去重
lst = [11,22,33,'hah','a','hah',22,33,11]
lst = list(set(lst)) #把lst轉換成集合再轉換成列表
print(lst)
##輸出
[33, 11, 'hah', 'a', 22]
3.9.2 集合的操作
1.增加
.add()
語法:set.add(元素)一次只能增加乙個元素,新增前set先進行查詢操作,如果元素已存在,add將不會把該元素新增到set中。
set =
set.add('李菁')
set.add('易大師')
set.add('慎')
set.add('慎')
print(set)
#輸出 #順序是不定的,且重複的內容不會新增到set中
.update()
語法:set.update('abc') 迭代更新成'a' 'b' 'c'
set.update(['abc']) 迭代更新成'abc'
set =
set.update('劍豪')
print(set) #輸出
set.update(['劍豪'])
print(set) #輸出
2.刪除
.pop()隨機彈出,返回彈出值,但是,不能指定刪除某個元素
.remove('元素') 刪除特定值,不會返回刪除值
.clear() 清空
.discard(''元素'') 如果刪除的是set中的元素,則刪除,否則,什麼也不做.
.del set 刪除整個集合
3.索引與替換
因為set是無序的,不能使用索引進行操作,沒有辦法去定位⼀個元素,也就無法直接通過索引進行替換。
如果要進行替換操作,只能先刪除要替換的元素然後新增新的元素。
4.查詢
set 是乙個可迭代物件,可以使用for迴圈輸出元素。
set支援 x in set, len(set), for x in set
作為乙個無序的集合,sets不記錄元素的位置和插入點
5.常用操作
操作符方法描述&
.intersection()交集|
.union()並集-
.difference()
差集,得到第乙個set的內容
^.symmetric_difference()
反交集,對稱差集;輸出兩個集合中單獨存在的資料
<
.issubset(a < b)
子集,判斷a是不是b的子集
>
.issuperset(a < b)
超集,判斷a是不是b的超集
se1 =
se2 =
print(se1 & se2) #交集,輸出
print(se1 | se2) #並集,輸出
print(se1 ^ se2) #反交集,輸出
se3 =
print(se3 < se1) #子集,輸出true
print(se2 > se3 ) #超集,輸出false
6.frozenset()凍結集合
set集合本⾝是可以發生改變的,是不可hash的。我們可以使用frozenset來儲存資料,frozenset是不可變的,也就是⼀個可雜湊的資料型別,之後就可以把他轉成dic的key來使用。
frozenset是凍結的集合,它是不可變的,存在雜湊值,好處是它可以作為字典的key,也可以作為其它集合的元素。缺點是一旦建立便不能更改,沒有add,remove方法。
se1 =
print(type(se1)) #輸出se1 = frozenset(se1)
print(type(se1)) #輸出print(type(se1))
dic =
print(dic)
學習Python 之 資料型別
首先,python程式,要嚴格注意 縮排,在c中所有需要括號的地方,都要縮排,不然程式會報錯.indentationerror expected an indented block 資料型別 1.dictionary 形式 d 1 在乙個 dictionary 中不能有重複的 key。給乙個存在的 ...
Python學習筆記之資料型別
計算機簡而言之為進行計算的機器。計算機的所有功能的本質是計算功能,無論是網路資訊發布還是醫院的計費系統,其本質都是計算。而計算機語言則是人類與計算機互動的語言,人類通過計算機語言告訴計算機做什麼事情。python自然也不例外,它實際上就是人類與計算機溝通的語言或者說工具。然而,python天生又是為...
Python學習之基礎資料型別
在python 2中,整數除法的結果只包含整數部分,小數部分被刪除。請注意,計算整數結果時,採取的方式不是四捨五入,而是將小數部分直接刪除。python2中需要保留至少乙個運算元為浮點數,結果才能保證為浮點數。在python 2中,無需將要列印的內容放在括號內。從技術上說,python 3中的pri...