程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python的collections包中補充默認值的字典defaultdict

編輯:Python

有時訪問字典中的鍵時,鍵可能不存在,因此需要加檢查,如果發現沒有之後有時需要加默認值。

有一個一步到位的方法是利用collections包中的defaultdict,它創建的是會自動設置默認值的字典,如果鍵存在則返回鍵的值,鍵不存在則返回默認值並把該鍵值對加入字典。

defaultdict需要傳入的參數是一個函數,如果是int則初始值為0,如果是list則初始值為空列表,當然也可以傳入自定義的函數。

from collections import defaultdict
adict=defaultdict(int)
adict['a']=2
print(adict)
print(adict['b'])
print(adict)
bdict=defaultdict(lambda :'hhh')
print(bdict['c'])

輸出:

defaultdict(<class 'int'>, {
'a': 2})
0
defaultdict(<class 'int'>, {
'a': 2, 'b': 0})
hhh

可以發現,它和字典中的setdefault非常類似,但是它更節省空間,例如要設置默認值為空列表,setdefault的寫法是xxdict.setdefault(xxkey,[]),無論xxkey是否存在,空列表都會創建,但是如果使用xxdict=defaultdict(list),則只有在鍵查不到的情況下才會創建空列表,因此更加節省空間。

defaultdict初始化時,還可以通過第二個參數傳入初始字典:

cdict=defaultdict(list,{
'c':'aaa'})
print(cdict)

輸出:

defaultdict(<class 'list'>, {
'c': 'aaa'})

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved