今天為大家帶來的內容是:原來python中dict()的高級用法可以這樣實現!真是讓我長了見識。
本文內容主要介紹了python中dict()的高級用法實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,喜歡的話記得點贊轉發關注哦?。?!
collections中defaultdict的用法
一、字典的鍵映射多個值
將下面的列表轉換成字典
一個字典就是一個鍵對應一個單值得映射,而上面的列表中有相同的鍵,如果你想要一個鍵映射多個值,那么就需要將這多個值放到另外的序列中,比如list或者set里面,像下面這樣:
你可以很方便的使用 collections 模塊中的 defaultdict 來構造這樣的字典。
defaultdict 的一個特征是它會自動初始化每個 key 剛開始對應的值。
嗨嘍:正在學習python的小伙伴或者打算學習的,可以私信小編“07”領取資料!
當然這個默認的容器不一定是 list, 也可以是集合 set。 根據自己的需求選擇使用 list 還是 set 。如果你想保持元素的插入順序就應該使用列表,如果想去掉重復元素就是用集合。
二、統計字典中某個值出現的次數
現在有一個列表,列表中有很多字典,需要統計字典中相同的鍵對應的值得和
利用defaultdict 設置默認值的方法 defaultdict(int) ,代碼如下:
collections 創建有序字典
字典dict是無序的,如果我們想要有序的字典,可以使用 OrderedDict,示例如下:
需要注意的是,一個 OrderedDict 的大小是一個普通字典的兩倍,因為它內部維護著另外一個鏈表,所以如果你需要構建一個需要大量 OrderedDict 實例的數據結構的時候(比如讀取100,000行CSV數據到一個 OrderedDict 列表中),那么你就得仔細權衡一下是否使用 OrderedDIict 帶來的好處要大過于額外內存消耗的影響。
改變key-value的順序
OrderedDict 是有序的字典,同時也能改變其順序,比如我們想要改變有序的 OrderedDict 對象的key-value 順序,可以使用 move_to_end(key), 還是以上面創建的有序字典為例子:
可以看到之前排在第一位的 bar 被移到最后一位了,move_to_end還接收一個關鍵字參數 last,last默認為True,當last=False時,表示將該鍵移動到最前面。
刪除key_value
如果我們要刪除有序字典中的 key_value,可以使用 popitem 方法,popitem(last=True)按照先進后出的順序刪除 dict 中的key_value,popitem(last=False) 按照先進先出的順序刪除dict中的 key_value
字典排序
利用python 內置函數 sorted 對字典的鍵或者值進行排序,首先來了解下sorted 函數:
sorted(iterable, key=None, reverse=False)
參數說明:
iterable -- 可迭代對象
key -- 主要是用來進行比較的元素,只有一個參數,具體的函數的參數就是取自于可迭代對象中,指定可迭代對象中的一個元素來進行排序。
reverse -- 排序規則,reverse = True 降序 , reverse = False 升序(默認)。
按照key進行排序
理解了 sorted 函數就好辦了,代碼如下:
按照value進行排序
代碼如下:
嗨嘍:正在學習python的小伙伴或者打算學習的,可以私信小編“07”領取資料!
注意排序后的返回值是一個list,而原字典中的名值對被轉換為了list中的元組。
通過某個關鍵字排序一個字典列表
假設你有一個字典列表,如下:
你想根據某個或某幾個字典字段來排序這個列表。
通過使用 operator 模塊的itemgetter函數,可以非常容易地排序這樣的數據結構,代碼如下:
itemgetter() 函數也支持多個 keys,比如下面的代碼:
好了,上面就是字典的一些高級用法,先到這里吧,我們下次繼續…
以上就是本文的全部內容,希望對大家的學習有所幫助?。?!
最后多說一句,小編是一名python開發工程師,這里有我自己整理了一套最新的python系統學習教程,包括從基礎的python腳本到web開發、爬蟲、數據分析、數據可視化、機器學習等。