日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

dict python用法_Python_Dict用法梳理

發(fā)布時(shí)間:2024/2/28 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dict python用法_Python_Dict用法梳理 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、 collections 中 defaultdict 的使用

1.一個(gè)字典映射多個(gè)值:

待處理字典:

l = [(‘a(chǎn)’,2),(‘b’,3),(‘a(chǎn)’,1),(‘b’,4),(‘a(chǎn)’,3),(‘a(chǎn)’,1),(‘b’,3)]

不用defaultdict時(shí)需要給字典的value設(shè)置默認(rèn)值(防止key對(duì)應(yīng)的value不存在):l?=?[('a',2),('b',3),('a',1),('b',4),('a',3),('a',1),('b',3)]

d?=?{}

for?key,value?in?l:

#?setdefault()方法用于獲取指定key對(duì)應(yīng)的value

#?如果該key不存在,則先將該key對(duì)應(yīng)的value設(shè)置為默認(rèn)值:[]

d.setdefault(key,[]).append(value)

print(d)

print(list(d.items()))

運(yùn)行結(jié)果:

{‘a(chǎn)’: [2, 1, 3, 1], ‘b’: [3, 4, 3]}

[(‘a(chǎn)’, [2, 1, 3, 1]), (‘b’, [3, 4, 3])]

有了defaultdict后,方便了很多:l?=?[('a',2),('b',3),('a',1),('b',4),('a',3),('a',1),('b',3)]

from?collections?import?defaultdict

#?創(chuàng)建defaultdict,設(shè)置由list()函數(shù)來(lái)生成默認(rèn)值

d1?=?defaultdict(list)

for?key,value?in?l:

#?直接訪(fǎng)問(wèn)defaultdict中指定key對(duì)應(yīng)的value即可。

#?如果該key不存在,defaultdict會(huì)自動(dòng)為該key生成默認(rèn)值

d1[key].append(value)

print(d1)

運(yùn)行結(jié)果:

defaultdict(, {‘a(chǎn)’: [2, 1, 3, 1], ‘b’: [3, 4, 3]})

2.統(tǒng)計(jì)字典中某個(gè)值出現(xiàn)的總和

列表中有很多字典,需要統(tǒng)計(jì)字典中相同的鍵對(duì)應(yīng)的值的和

利用 defaultdict 設(shè)置默認(rèn)值的方法 defaultdict(int)from?collections?import?defaultdict

d?=?defaultdict(int)

#以下四個(gè)key-value,對(duì)應(yīng)本人大學(xué)期間考的四六級(jí)分?jǐn)?shù)=_=

score?=?[{'cet4':547},{'cet6':450},{'cet6':464},{'cet6':437},{'cet6':445}]

for?s?in?score:

for?key,value?in?s.items():

d[key]?+=?value

print(d)

運(yùn)行結(jié)果:

defaultdict(, {‘cet4’: 547, ‘cet6’: 1796})

同理,統(tǒng)計(jì)字典中某個(gè)值出現(xiàn)的次數(shù)from?collections?import?defaultdict

d?=?defaultdict(int)

#以下四個(gè)key-value,對(duì)應(yīng)本人大學(xué)期間考的四六級(jí)分?jǐn)?shù)=_=

score?=?[{'cet4':547},{'cet6':450},{'cet6':464},{'cet6':437},{'cet6':445}]

for?s?in?score:

for?key,value?in?s.items():

d[key]?+=?1

print(d)

運(yùn)行結(jié)果:

defaultdict(, {‘cet4’: 1, ‘cet6’: 4})

二、collections 創(chuàng)建有序字典

字典dict是無(wú)序的,如果我們想要有序的dict,可以使用OrdereDict

OrderedDict 內(nèi)部維護(hù)著一個(gè)根據(jù)鍵插入順序排序的雙向鏈表。每次當(dāng)一個(gè)新的元素插入進(jìn)來(lái)的時(shí)候,它會(huì)被放到鏈表的尾部。對(duì)于一個(gè)已經(jīng)存在的鍵的重復(fù)賦值不會(huì)改變鍵的順序。

需要注意的是,一個(gè) OrderedDict 的大小是一個(gè)普通字典的兩倍,因?yàn)樗鼉?nèi)部維護(hù)著另外一個(gè)鏈表。

改變 key-value 的順序

move_to_end 還接收一個(gè)關(guān)鍵字參數(shù) last。last 默認(rèn)為T(mén)rue,當(dāng) last = False 的時(shí)候,表示將該鍵移動(dòng)到最前面。

刪除 key_value

如果我們要?jiǎng)h除有序字典中的 key-value, 可以使用 popitem 方法, popitem(last=True) 按照先進(jìn)后出的順序刪除 dict中的key-value,popitem(last=False) 按照先進(jìn)先出的規(guī)則刪除 dict 中的 key-value。

三、字典排序

1.按照key進(jìn)行排序

2.按照value進(jìn)行排序

四、通過(guò)某個(gè)關(guān)鍵字排序一個(gè)字典列表

from operator import itemgetter

通過(guò)使用operator模塊的 itemgetter函數(shù)實(shí)現(xiàn)

總結(jié)

以上是生活随笔為你收集整理的dict python用法_Python_Dict用法梳理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。