欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python中dict()的高級用法實現(xiàn)

 更新時間:2019年11月13日 16:20:21   作者:小白的進階  
這篇文章主要介紹了python中dict()的高級用法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

collections中defaultdict的用法

一、字典的鍵映射多個值

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

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

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

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

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

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

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

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

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

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

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

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

改變key-value的順序

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

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

刪除key_value

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

字典排序

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

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

參數(shù)說明:

  • iterable -- 可迭代對象
  • key -- 主要是用來進行比較的元素,只有一個參數(shù),具體的函數(shù)的參數(shù)就是取自于可迭代對象中,指定可迭代對象中的一個元素來進行排序。
  • reverse -- 排序規(guī)則,reverse = True 降序 , reverse = False 升序(默認)。

按照key進行排序

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

按照value進行排序

代碼如下:

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

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

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

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

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

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

好了,上面就是字典的一些高級用法,先到這里吧,我們下次繼續(xù)…

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python區(qū)塊鏈簡易版交易實現(xiàn)示例

    python區(qū)塊鏈簡易版交易實現(xiàn)示例

    這篇文章主要為大家介紹了python區(qū)塊鏈簡易版交易實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • python 基于pygame實現(xiàn)俄羅斯方塊

    python 基于pygame實現(xiàn)俄羅斯方塊

    這篇文章主要介紹了python 基于pygame實現(xiàn)俄羅斯方塊的方法,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • Python實現(xiàn)梯度下降法的示例代碼

    Python實現(xiàn)梯度下降法的示例代碼

    梯度下降法的機器學(xué)習(xí)的重要思想之一,梯度下降法的目標(biāo),是使得代價函數(shù)最小。本文將對梯度下降算法的原理及實現(xiàn)展開詳細介紹,感興趣的快跟隨小編一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Python的@裝飾器的作用小結(jié)

    Python的@裝飾器的作用小結(jié)

    本文給大家講解Python的@裝飾器的用途,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-11-11
  • 僅用500行Python代碼實現(xiàn)一個英文解析器的教程

    僅用500行Python代碼實現(xiàn)一個英文解析器的教程

    這篇文章主要介紹了僅用500行Python代碼實現(xiàn)一個英文解析器的教程,自然語言處理近來也是業(yè)界中一個熱門課題,作者為NLP方向的開發(fā)者,需要的朋友可以參考下
    2015-04-04
  • 用python讀寫excel的方法

    用python讀寫excel的方法

    這篇文章主要介紹了用python讀寫excel的方法,涉及xlrd模塊與xlwt模塊的應(yīng)用,具有一定的學(xué)習(xí)借鑒價值,需要的朋友可以參考下
    2014-11-11
  • Flask項目搭建配置項導(dǎo)入教程

    Flask項目搭建配置項導(dǎo)入教程

    這篇文章主要為大家介紹了Flask項目搭建配置項導(dǎo)入教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • python打包成so文件過程解析

    python打包成so文件過程解析

    這篇文章主要介紹了python打包成so文件過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • Python中的with...as用法介紹

    Python中的with...as用法介紹

    這篇文章主要介紹了Python中的with...as用法介紹,本文直接給出用法實例,需要的朋友可以參考下
    2015-05-05
  • Python基礎(chǔ)之語法錯誤和異常詳解

    Python基礎(chǔ)之語法錯誤和異常詳解

    Python有兩種錯誤很容易辨認:語法錯誤和異常.本文就給大家詳細介紹一下Python錯誤和異常,對正在學(xué)習(xí)python的小伙伴們很有幫助哦,需要的朋友可以參考下
    2021-05-05

最新評論