dict python用法_Python_Dict用法梳理
一、 collections 中 defaultdict 的使用
1.一個字典映射多個值:
待處理字典:
l = [(‘a’,2),(‘b’,3),(‘a’,1),(‘b’,4),(‘a’,3),(‘a’,1),(‘b’,3)]
不用defaultdict時需要給字典的value設置默認值(防止key對應的value不存在):l?=?[('a',2),('b',3),('a',1),('b',4),('a',3),('a',1),('b',3)]
d?=?{}
for?key,value?in?l:
#?setdefault()方法用于獲取指定key對應的value
#?如果該key不存在,則先將該key對應的value設置為默認值:[]
d.setdefault(key,[]).append(value)
print(d)
print(list(d.items()))
運行結果:
{‘a’: [2, 1, 3, 1], ‘b’: [3, 4, 3]}
[(‘a’, [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
#?創建defaultdict,設置由list()函數來生成默認值
d1?=?defaultdict(list)
for?key,value?in?l:
#?直接訪問defaultdict中指定key對應的value即可。
#?如果該key不存在,defaultdict會自動為該key生成默認值
d1[key].append(value)
print(d1)
運行結果:
defaultdict(, {‘a’: [2, 1, 3, 1], ‘b’: [3, 4, 3]})
2.統計字典中某個值出現的總和
列表中有很多字典,需要統計字典中相同的鍵對應的值的和
利用 defaultdict 設置默認值的方法 defaultdict(int)from?collections?import?defaultdict
d?=?defaultdict(int)
#以下四個key-value,對應本人大學期間考的四六級分數=_=
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)
運行結果:
defaultdict(, {‘cet4’: 547, ‘cet6’: 1796})
同理,統計字典中某個值出現的次數from?collections?import?defaultdict
d?=?defaultdict(int)
#以下四個key-value,對應本人大學期間考的四六級分數=_=
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)
運行結果:
defaultdict(, {‘cet4’: 1, ‘cet6’: 4})
二、collections 創建有序字典
字典dict是無序的,如果我們想要有序的dict,可以使用OrdereDict
OrderedDict 內部維護著一個根據鍵插入順序排序的雙向鏈表。每次當一個新的元素插入進來的時候,它會被放到鏈表的尾部。對于一個已經存在的鍵的重復賦值不會改變鍵的順序。
需要注意的是,一個 OrderedDict 的大小是一個普通字典的兩倍,因為它內部維護著另外一個鏈表。
改變 key-value 的順序
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。
三、字典排序
1.按照key進行排序
2.按照value進行排序
四、通過某個關鍵字排序一個字典列表
from operator import itemgetter
通過使用operator模塊的 itemgetter函數實現
總結
以上是生活随笔為你收集整理的dict python用法_Python_Dict用法梳理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工厂方法模式_工厂方法模式
- 下一篇: python安装scrapy框架命令_p