python 設定預設字典

2021-10-02 06:43:01 字數 859 閱讀 1709

訪問字典中某個『鍵』時,若鍵不存在則會報錯,比如

>>> dic = 

>>> dic['b']

traceback (most recent call last):

file "", line 1, in dic['b']

keyerror: 'b'

如果不想報錯,可以給字典設定預設值。即當鍵存在時,返回鍵對應的值;鍵不存在時,返回預設值:

1 字典自帶的 setdefault 函式

>>>dic = 

#此時訪問 dic['b'] 會報錯,因為dic不存在鍵 『b』

#設定預設值

>>> dic.setdefault('b', 2)

>>> dic['b']

>>> 2

2 collections 模組的 defaultdict 函式

>>> from collections import defaultdict

>>> dic = defaultdict(int)

>>> dic['a']

>>> 0

# dic = defaultdict(int) 該式中的int 可以替換為 str flaot等。

# 為 int 時的預設值為 0

# 為 str 時的預設值為 ''

#若想設定預設值為一給定的值 比如 'oppo' 則如下

>>> dic = defaultdict(lambda : 'oppo')

>>> dic['a']

>>> 'oppo'

Python預設字典 defaultdict

預設字典的功能與dict基本相同,但在訪問乙個不存在的key時,預設字典會提供乙個預設值,而不是引發異常。預設字典的建構函式接受乙個工廠函式default factory作為引數,可以將乙個型別名看做是乙個工廠函式,比如list,tuple,str等。這個函式會在要生成預設值的時候無參呼叫,如果使用...

預設字典,有序字典

第乙個引數是default factory,預設是none,它提供乙個初始化函式.當key不存在的時候,會呼叫這個工廠函式來生成key對應的value d for i in abcdef for j in range 3 if i not in d d i print d from collecti...

Python 設定系統預設編碼

python在安裝時,預設的編碼是ascii,當程式中出現非ascii編碼時,python的處理常常會報這樣的錯unicodedecodeerror ascii codec can t decode byte 0x?in position 1 ordinal not in range 128 pyt...