set和dict理論和操作-創(chuàng)新互聯(lián)

Set 集合 和 Dict字典
set 集合
collection 翻譯為集合類型,是一個大的概念 如:
set
是一個可變的,無序的,不重復(fù)的元素集合(已覆蓋的形式去除重復(fù)的元素)
s = set() 創(chuàng)建一個空set
s = set(iterable) 創(chuàng)建一個可迭代的集合
set的元素不可以索引
set可以迭代
set中的元素是可hash的元素,一般的可hash元素都是不可變類型數(shù)據(jù)
hash是將整個元素遍歷一遍,不管你是什么類型,即使你是在元組中套了一個list 也不可以hash,
hash時會將復(fù)合類型里面的元素全部遍歷一遍

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),張家界企業(yè)網(wǎng)站建設(shè),張家界品牌網(wǎng)站建設(shè),網(wǎng)站定制,張家界網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,張家界網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

s = {1,'abd',(3,)}
s
{1, (3,), 'abd'}
s = {1,'ac',(3,[4])}
Traceback (most recent call last):
File "<pyshell#53>", line 1, in <module>
s = {1,'ac',(3,[4])}
TypeError: unhashable type: 'list'

set 與 set 不能使用 +號 連接
set.add(元素) 一次只能添加一個元素,不能疊加 可迭代的對象;如果元素已經(jīng)存在則什么都不做
s = set()
s.add(range(6))
s
{range(0, 6)}

update(others) >>> Neno 就地修改
多個可迭代對象 ;*+標識符(變量名),參數(shù)others必須是 可迭代對象
作用:將多個數(shù)據(jù)集合合并到一個set集合中;迭代時會自行去重
remove(elem)
從set中一出一個元素;元素不存在,拋出KeyError異常(類似字典)
discard(elem)
從set中移除一個元素;元素不存在什么都不做
pop() >>>item
移除并返回任意元素;空集返回KeyError異常
clear()
移除所有元素
修改:
要么刪除,要么加入新的元素
查詢
非線性結(jié)構(gòu),無法索引
遍歷
可迭代所有元素
成員運算符
in 和 not in 判斷元素是否在set中
反復(fù)in 用set list 效率不高 耗時較長 不推薦使用in的類型之一

dict
定義:
初始化字典
d = {} 創(chuàng)建空字典
d = dict(**kwargs) 使用name = value 初始化一個字典
d = dict.fromkeys(iterable,value)
d = dict.fromkeys(range(6),6) 創(chuàng)建一個從零到5的key,值為6;不賦值時,默認為None

訪問字典
dict[key]
返回key對應(yīng)的value值;當 key 不存在時拋出KeyError異常
dict.get(key[,default])
返回key對應(yīng)的value值;key不存在時返回缺省值,如果沒有缺省值返回Neno
setdefault(key [,default])
返回key對應(yīng)的value值;key不存在時,添加kv對,value的是為default,返回default
如果么有default值就 缺省為Neno
字典的修改
dict [key] = value
將key對應(yīng)的值進行修改,賦值
key不存在時 添加新的kv對
update([other])>>>>Neno 就地修改
使用另一個字典的kv對來更新本字典
key不存在時,就添加;存在,就覆蓋已經(jīng)存在的值
字典的刪除
dict.pop(key [,default]) 移除的kv對是無序的
key存在就移除它,返回它的value
key不存在,返回給定的default;沒有設(shè)置default是,就拋出keyError異常

#我們直接移除時,會發(fā)生遍歷元素時 的key值 位移從而移除的元素會出現(xiàn)遺漏
#所以我們要建立一個新的列表,遍歷k將元素添加到其中,在實行pop()命令
不能在for循環(huán)中刪除,
d = dict(a=1,b=2,c="abc") 2018.08.14 53:00
keys=[]
for k,v in d.items():
if isinstance(v,int): #判斷 該值是否是 我們需要的值,
keys.append(k) #不是則將key 保存到一個list中

for k in keys: #遍歷keys中的k值 找到符合我們 if語句的V值
d.pop(k) #找到就將該元素從字典中移除
print(d)

dict.popitem()
移除并返回一個任意鍵值對
字典為empty,拋出KeyError異常
dict.clear()
清除字典
del 刪除 2018.08.14 13:00不清楚
刪除的并不是對象,而是將value的引用計數(shù)減一
字典的遍歷
字典是由鍵值對組成的元素集合,所以遍歷字典有三種形式
1.遍歷key
for key in dict.keys: print(key) == for k in dict: list(dict) == list(dict.keys())
2.遍歷value 2018.08.14 24:00 用其他遍歷value
for value in dict.values : print(value) for k in dict:print(dict[k])或者
3.遍歷kv值
for key,value in dict.items : print(kry,value) == list(dict.items())
總結(jié)
python3中,keys、value、items返回一個類似生成器的可迭代對象,不會吧函數(shù)的結(jié)果復(fù)制到內(nèi)存中
dictionary view對象,可以使用len()、iter()封裝成迭代器的語句、in操作
字典的entry的動態(tài)視圖,針對items,鍵值對;字典發(fā)生變化,視圖將反映出這些變化
keys返回一個類set對象,也可以看做是一個set集合
keys values items python2 與 python3 有所不同 36:30
2018.08.14 33:00 不清楚
key的要求和set的元素是一致的
set的元素可以看做key,set可以看走dict的簡化版
hashsble可哈希才可以作為key,可用hash()測試
defaultdict缺省字典
collections.defaultdict([default_factory[,......]])
第一個參數(shù)default_factory,缺省為Neno,他提供一個初始化函數(shù)。當key不存在時,會調(diào)用這個工場函數(shù)來生成key對應(yīng)的value

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享文章:set和dict理論和操作-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://muchs.cn/article6/dchoig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、App設(shè)計網(wǎng)站內(nèi)鏈、做網(wǎng)站、電子商務(wù)、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)