集合set
創(chuàng)新互聯(lián)自2013年創(chuàng)立以來(lái),是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)制作、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元徐聞做網(wǎng)站,已為上家服務(wù),為徐聞各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108去重的,可變的,可迭代的,無(wú)序的 元素集合
set的元素必須是可hash的
約定
set翻譯為集合
collection 翻譯為集合類(lèi)型,是一個(gè)大概念
set定義 初始化
set() -> new empty set object
set(iterable) -> new set object
s1 = set() #空set s2 = set(range(5)) s3 = set(list(range(10))) s4 = {} # 空{(diào)}是空字典(dict)不是空set s5 = {9 ,10, 11} # set s6 = {(1,2) , 3, 'a'} s7 = {[1],(1,),1} # 報(bào)錯(cuò):[1] 是unhashable type: 'list'
set的元素
set 的元素要求必須是可hash的
目前學(xué)過(guò)的不可hash的類(lèi)型有l(wèi)ist,set,bytearray
元素不可以索引
set 可以迭代
set增加
add(elem) -> None
增加一個(gè)元素到set中
如果元素存在,什么都不做(set的去重性質(zhì))
update( * others) -> None
合并其他元素到set集合中來(lái)
參數(shù)others必須是可迭代對(duì)象,可以是多個(gè)用逗號(hào)隔開(kāi)
就地修改
set刪除
remove(elem) -> None
從set中移除一個(gè)元素
元素不存在,拋出keyError異常
discard(elem) -> None
從set中移除一個(gè)元素
元素不存在什么都不做
pop() -> item
移除并返回任意的元素.(類(lèi)似隨機(jī)的)
空集合返回keyError異常
clear()
移除所有元素
set 修改,查詢(xún)
修改:
要么刪除,要么加入新的元素
查詢(xún):
非線性結(jié)構(gòu),無(wú)法索引
遍歷:
可以迭代所有元素
成員運(yùn)算符
in 和 not in 判斷元素是否在set中
效率為 O(1) ### list,tuple等用成員運(yùn)算符時(shí),效率為O(n)
set 和線性結(jié)構(gòu)
線性結(jié)構(gòu)的查詢(xún)時(shí)間復(fù)雜度是O(n),隨著數(shù)據(jù)規(guī)模的增大而增加耗時(shí)
set,dict等結(jié)構(gòu),內(nèi)部使用hash值作為Key,時(shí)間復(fù)雜度可以做到O(1),查詢(xún)時(shí)間和數(shù)據(jù)規(guī)模無(wú)關(guān)
可hash
數(shù)值型int,float,complex
布爾型 True,False
字符串 string,bytes
tuple
None
以上都是不可變類(lèi)型,稱(chēng)為可哈希類(lèi)型,hashable
集合
基本概念
全集: 所有元素的集合.例如實(shí)數(shù)集,所有實(shí)數(shù)組成的集合就是全集
子集subset和超集superset: 一個(gè)集合A所有的元素都在另一個(gè)集合B內(nèi),A是B的子集,B是A的超集
真子集和真超集: A是B的子集,且A不等于B,A就是B的真子集,B是A的真超集
并集: 多個(gè)集合合并的解構(gòu)
交集: 多個(gè)集合的公共部分
差集: 集合中除去和其他集合公共部分
集合運(yùn)算
并集
將兩個(gè)集合A和B的所有的元素合并到一起,組成的集合稱(chēng)作集合A與集合B的并集
set.union(*others)
返回和多個(gè)集合合并后的新的集合
| 運(yùn)算符重載
等同union
set.update(*others) -> None
和多個(gè)集合合并,就地修改
|= -> None
等同update
交集
集合A和B,由所有屬于A且屬于B的元素組成的集合
set.intersection(* others)
返回和多個(gè)集合的交集
&
等同intersection
set.intersection_update(*others) -> None
獲取和多個(gè)集合的交集,并就地修改
&= -> None
等同intersection_update
差集
集合A和B,由所有屬于A且不屬于B的元素組成的集合
set.differentce(*others)
返回和多個(gè)集合的差集
-
等同difference
set.difference_update(*others)
獲取和多個(gè)合集的差集并就地修改
-=
等同difference_update(*others)
對(duì)稱(chēng)差集
集合A和B,由所有不屬于A和B的交集元素組成的集合,基座(A-B)U(B-A)
symmetric_difference(other)
返回和另一個(gè)集合的差集
^
等同symmetric_difference(other)
symmetric_difference_update(other)
獲取和另一個(gè)集合的差集并就地修改
^=
等同symmetric_difference_update
集合判斷
set.issubset(other), <=
判斷當(dāng)前集合是否是other的子集
set1 < set2
判斷set1 是否是set2 的真子集
set.issuperset(other) >=
判斷當(dāng)前集合是否是other的超集
set1 > set2
判斷set1 是否是 set2 的真超集
set.isdisjoint(other)
當(dāng)前集合和另一個(gè)集合沒(méi)有交集
沒(méi)有交集,返回True
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)站名稱(chēng):Python內(nèi)置數(shù)據(jù)結(jié)構(gòu)——集合set,集合運(yùn)算-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://aaarwkj.com/article42/hcgec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、Google、外貿(mào)建站、網(wǎng)站改版、用戶(hù)體驗(yàn)、軟件開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容