如何在python中使用dict()-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)如何在python中使用dict(),文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

10余年的欽州網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營銷型網(wǎng)站的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整欽州建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“欽州網(wǎng)站設(shè)計(jì)”,“欽州網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

一、字典的鍵映射多個(gè)值

將下面的列表轉(zhuǎn)換成字典

如何在python中使用dict()

一個(gè)字典就是一個(gè)鍵對應(yīng)一個(gè)單值得映射,而上面的列表中有相同的鍵,如果你想要一個(gè)鍵映射多個(gè)值,那么就需要將這多個(gè)值放到另外的序列中,比如list或者set里面,像下面這樣:

如何在python中使用dict()

你可以很方便的使用 collections 模塊中的 defaultdict 來構(gòu)造這樣的字典。

defaultdict 的一個(gè)特征是它會自動初始化每個(gè) key 剛開始對應(yīng)的值。

如何在python中使用dict()

當(dāng)然這個(gè)默認(rèn)的容器不一定是 list, 也可以是集合 set。 根據(jù)自己的需求選擇使用 list 還是 set 。如果你想保持元素的插入順序就應(yīng)該使用列表,如果想去掉重復(fù)元素就是用集合。

二、統(tǒng)計(jì)字典中某個(gè)值出現(xiàn)的次數(shù)

現(xiàn)在有一個(gè)列表,列表中有很多字典,需要統(tǒng)計(jì)字典中相同的鍵對應(yīng)的值得和

如何在python中使用dict()

利用defaultdict 設(shè)置默認(rèn)值的方法 defaultdict(int) ,代碼如下:

如何在python中使用dict()

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

字典dict是無序的,如果我們想要有序的字典,可以使用 OrderedDict,示例如下:

如何在python中使用dict()

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

需要注意的是,一個(gè) OrderedDict 的大小是一個(gè)普通字典的兩倍,因?yàn)樗鼉?nèi)部維護(hù)著另外一個(gè)鏈表,所以如果你需要構(gòu)建一個(gè)需要大量 OrderedDict 實(shí)例的數(shù)據(jù)結(jié)構(gòu)的時(shí)候(比如讀取100,000行CSV數(shù)據(jù)到一個(gè) OrderedDict 列表中),那么你就得仔細(xì)權(quán)衡一下是否使用 OrderedDIict 帶來的好處要大過于額外內(nèi)存消耗的影響。

改變key-value的順序

OrderedDict 是有序的字典,同時(shí)也能改變其順序,比如我們想要改變有序的 OrderedDict 對象的key-value 順序,可以使用 move_to_end(key), 還是以上面創(chuàng)建的有序字典為例子

如何在python中使用dict()

可以看到之前排在第一位的 bar 被移到最后一位了,move_to_end還接收一個(gè)關(guān)鍵字參數(shù) last,last默認(rèn)為True,當(dāng)last=False時(shí),表示將該鍵移動到最前面。

刪除key_value

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

如何在python中使用dict()

字典排序

利用python 內(nèi)置函數(shù) sorted 對字典的鍵或者值進(jìn)行排序,首先來了解下sorted 函數(shù)

sorted(iterable, key=None, reverse=False)

參數(shù)說明:

  • iterable -- 可迭代對象

  • key -- 主要是用來進(jìn)行比較的元素,只有一個(gè)參數(shù),具體的函數(shù)的參數(shù)就是取自于可迭代對象中,指定可迭代對象中的一個(gè)元素來進(jìn)行排序。

  • reverse -- 排序規(guī)則,reverse = True 降序 , reverse = False 升序(默認(rèn))。

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

理解了 sorted 函數(shù)就好辦了,代碼如下:

如何在python中使用dict()

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

代碼如下:

如何在python中使用dict()

注意排序后的返回值是一個(gè)list,而原字典中的名值對被轉(zhuǎn)換為了list中的元組。

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

假設(shè)你有一個(gè)字典列表,如下:

如何在python中使用dict()

你想根據(jù)某個(gè)或某幾個(gè)字典字段來排序這個(gè)列表。

通過使用 operator 模塊的itemgetter函數(shù),可以非常容易地排序這樣的數(shù)據(jù)結(jié)構(gòu),代碼如下:

如何在python中使用dict()

itemgetter() 函數(shù)也支持多個(gè) keys,比如下面的代碼:

如何在python中使用dict()

關(guān)于如何在python中使用dict()就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

分享題目:如何在python中使用dict()-創(chuàng)新互聯(lián)
文章來源:http://muchs.cn/article24/dspece.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、用戶體驗(yàn)、移動網(wǎng)站建設(shè)、電子商務(wù)、建站公司、響應(yīng)式網(wǎng)站

廣告

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

成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)