python中defaultdict的用法詳解

2021-08-20 14:13:32 字數 906 閱讀 2489

當我使用普通的字典時,用法一般是dict={},新增元素的只需要dict[element] =value即,呼叫的時候也是如此,dict[element] = ***,但前提是element字典裡,如果不在字典裡就會報錯,如: 

這時defaultdict就能排上用場了,defaultdict的作用是在於,當字典裡的key不存在但被查詢時,返回的不是keyerror而是乙個預設值,這個預設值是什麼呢,下面會說

如何使用defaultdict

defaultdict接受乙個工廠函式作為引數,如下來構造:

dict =defaultdict( factory_function)
這個factory_function可以是list、set、str等等,作用是當key不存在時,返回的是工廠函式的預設值,比如list對應[ ],str對應的是空字串,set對應set( ),int對應0,如下舉例:

from collections import defaultdict

dict1 = defaultdict(int)

dict2 = defaultdict(set)

dict3 = defaultdict(str)

dict4 = defaultdict(list)

dict1[2] ='two'

print(dict1[1])

print(dict2[1])

print(dict3[1])

print(dict4[1])

輸出:

0

set()

python中 python中的 與

這一部分首先要理解python記憶體機制,python中萬物皆物件。對於不可變物件,改變了原來的值,其別名 變數名 繫結到了新值上面,id肯定會改變 對於可變物件,操作改變了值,id肯定會變,而 是本地操作,其值原地修改 對於 號操作,可變物件和不可變物件呼叫的都是 add 操作 對於 號操作,可變...

python中否定for 在python中否定函式

有沒有一種方法可以否定乙個函式,使它返回負數。在我的函式中,我有條件句,每個條件句都讓這個 烏龜 移動。有沒有一種方法可以否定這一點,所以烏龜的每乙個動作都是否定的。我說的是 狀況 在def ttinterpret program interpret program as a tinyturtle ...

python中雙重迴圈 加速Python中的雙迴圈

有沒有辦法加快從上一次迭代更新其值的雙迴圈?在 中 def calc n,m x 1.0 y 2.0 container np.zeros n,2 for i in range n for j in range m x np.random.gamma 3,1.0 y y 4 y np.random....