溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python中set 和dict 的總結(jié)

發(fā)布時間:2020-08-06 11:07:20 來源:網(wǎng)絡(luò) 閱讀:514 作者:121502_hl 欄目:編程語言

Set

set的定義:

 

set是可變的,無序的,不重復(fù)的元素組成的可迭代的集合。

 

set () 定義一個空集合。

set(iterable)  定義一個set

例如:set1=set(range(100))

 

set 中的元素

set中的元素必須是可hash,元素可以迭代,不可以索引。

可hash的數(shù)據(jù)類型:

數(shù)值型:int 、float、complex

布爾型: True 、False

字符串: string 、  bytes

None

 

set的方法:

 

增加:

add (elem)   在集合中增加一個元素,如果元素存在,什么都都不做,時間復(fù)雜度O(1)

 

update(*others)   在集合中合并其它元素到set中來,參數(shù)必須是可迭代對象,直接修該set

 

刪除:

remove (elem)  從集合中移除一個元素,元素不存在,拋出KeyError異常。

 

discard(elem)    從集合中移除一個元素,元素不存在,什么也不做。

 

pop()   從集合中移除任意元素(由于不可索引),空集返回KeyError異常

 

clear()   移除所有元素

 

由于set是非線性數(shù)據(jù)結(jié)構(gòu),不可索引,所以set中元素?zé)o法修改,要么直接刪除,要么加入新的元素。

 

 

可以做成員運行:

in 和not in   由于使用的是hash算法,時間復(fù)雜度為O(1)

 

字典 dict

 

dict的定義:

dict是由key-value 鍵值對的組成的,可變的,無序的,key不重復(fù)的數(shù)據(jù)的集合

d = dict()   定義一個空字典

d= { }     定義一個空字典

dict(** kwargs)  使用name= value 初始化一個字典

dict(iteable , **kwargs)  使用可迭代對象(必須是一個二元組)和name= value 初始化一個字典

dict(mapping,**kwarg)   使用一個字典構(gòu)建另一個字典

d={‘a(chǎn)’:1,’b’:2,’c’:3} 

類方法dict.fromkeys(iteranble,value)

 

dict 的方法:

 

字典元素的訪問

 

d[key]  返回key對應(yīng)的值value,key不存在拋出KeyError異常

 

get(key[,default])  返回key對應(yīng)的值value,key不存在返回缺省值,如果沒有缺省值返回None

setdefault(key,[,default]) 返回key對應(yīng)的值value ,key不存在,添加kv 對,value設(shè)置為默認的給定的值,并返回默認值,如果默認值沒有設(shè)置,缺省為None

 

增加

 

d[key] =value   將key對應(yīng)的值修改為value ,Key不存在添加新的kv對

 

update([other])   返回空,使用另一個字典的kv對更新字典,key不存在就添加key存在,覆蓋key對應(yīng)的value。直接修改原字典。

 

刪除

 

pop(key[,default])  key存在,移除它,并返回他的value,不存在,返回給定的默認值,默認值未設(shè)定,key不存在則拋出KeyError異常。

 

 

popitem() 移除并返回一個任意的鍵值對,字典為empty,拋出KeyError異常

 

 

clear()  清除字典

 

del 語句, 刪除的是對象的引用,名稱,而不是對象本身。只是減少對象的引用計數(shù)

 

字典的遍歷方法有:

遍歷key   、  遍歷 value     、遍歷(key 、value)     、  遍歷item

 

set和dict的區(qū)別:

set 和dict的區(qū)別是,set沒有value,set和dict的原理是一樣,字典的key和set的元素都是不能放入可變的對象,可變對象是不能判斷兩個是否相等,也就無法保證元素不重復(fù)。

 

 

dict和list的比較

dct的特點:

查找和插入數(shù)據(jù)速度極快,不會隨著數(shù)據(jù)的增加而變慢,需要占用大量的內(nèi)存,內(nèi)存浪費比多。

 

list的特點:

查找和插入的時間對著元素的增加而增加,需要占用大量的內(nèi)存,內(nèi)存浪費比較少。


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI