set 是一個(gè)無序不重復(fù)元素集,還有個(gè)frozenset 類型(顧明思議,就是不可改變?cè)氐募希?/p>
基本功能包括關(guān)系測(cè)試和消除重復(fù)元素;set支持& | - (交、并、差集) 等數(shù)學(xué)運(yùn)算
set 賦值:非空集合由{}標(biāo)識(shí),逗號(hào)隔開元素; 注意,空集合表示為 set() 而不是 {} (這是dict);python 會(huì)對(duì)set自動(dòng)去除重復(fù)
1 s = {} # 注意這是 dict類型2 PRint(type(s))3 s = set() # 空集合表示方法4 print(type(s))5 s = {1,1.0}6 print(s) # 輸出{1.0},可去重 int float類型不區(qū)分,輸出float7 s = [1,2,1,2,1,1,3]8 s = set(s) # 強(qiáng)制轉(zhuǎn)換成 set9 print(s) # 同樣去重了
同 list 相似,set 也有簡單操作,如下:
1 s = {1,2,1,2,1,1,3,0}2 print(s,len(s)) # len(s) 返回了set包含元素的個(gè)數(shù)(去重)3 print((1.0 in s),(3 in s),(True in s),(False in s)) # 測(cè)試是否包含元素,注意0可以對(duì)應(yīng)False,1可以對(duì)應(yīng)True4 print(True not in s)
表示法: & | - ; 分別表示交集、并集、及非(具體意思請(qǐng)百度),無對(duì)應(yīng)結(jié)果返回空集合,即 set() 示例如下:
1 a = {0,1,2}2 b = {1,2,3}3 print(a&b) # 交集4 print(a|b) # 并集5 print(a-b) # a差b6 print(b-a) # b差a7 a = {0,1,2}8 b = {3,4,5}9 print(a&b) # set()
一些函數(shù)也可作交、并、差運(yùn)算,詳細(xì)參見 python list、set 相關(guān)參考
s.add(elem) 增加;.remove(elem) .discard(elem) .pop() 刪除;s.clear() 清空;詳見下面實(shí)例
1 s = {0,1,2} 2 s.add(4) # .add(elem) 3 s.add(4.0) 4 s.add("4") 5 print(s) 6 s.remove(0) # .remove(elem) 去除現(xiàn)有元素,如不存在,會(huì) raise error 7 print(s) 8 # s.remove(0) # 報(bào)錯(cuò) 9 s = {0,1,2}10 s.discard(0) # .discard(elem) 去除現(xiàn)有元素,如不存在,不會(huì)報(bào)錯(cuò)11 print(s)12 s.discard(4) # 不會(huì)報(bào)錯(cuò)13 s = {"a","b","c"}14 print(s.pop(),s) # 刪除一個(gè)不確定的元素,并 return 該元素,若集合為空,會(huì) raise error15 s = {1,2,3}16 print(s.pop()) # 數(shù)字類型好像每次都會(huì)pop出最小的117 s = {1,2,3,"b","c"}18 print(s.pop()) # pop出不確定的非數(shù)字,或者最小的數(shù)字119 s.clear()20 print(s) # 清空
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注