Python中的defaultdict函式

2021-10-03 19:45:28 字數 1431 閱讀 4903

用於產生乙個帶有預設值的dict。主要針對key不存在的情況下,也希望有返回值的情況。

>>

> a =

dict()

>>

> a[

'k1']=

1>>

> a

>>

> a[

'k2'

]traceback (most recent call last)

: file ""

, line 1,in

keyerror:

'k2'

>>

>

對於普通的dict,key不存在就報錯。

但是對於defaultdict,key不存在就會返回預設值。

那麼預設值如何設定?通過給defaultdict()方法傳參,傳入的是乙個函式(或叫做方法),當key不存在時,返回的就是這個函式的預設返回值。

>>

> a = defaultdict(

int)

>>

> a

defaultdict(

<

class

'int'

>,)

>>

> a[

'k2']0

>>

>

此時就不會報錯。而且返回值是0。

我們還發現了,原來int這個內建函式的預設值是0。看這個示例:

>>

>

print

(int()

)0

這裡的函式可以是任意自定義函式,只要又default的return即可。

>>

> from collections import defaultdict

>>

> def fun(

): return 666

...>>

> fun(

)666

>>

> a = defaultdict(fun)

>>

> a

defaultdict(

, )>>

> a[

'nonexist_key'

]666

>>

>

風雨淒淒 雞鳴喈喈

既見君子 雲胡不夷

2023年03月12日 20:18:0

關於switch中的default

注意,default語句不是必須放在case語句的結尾處出現。例子程式 int i 9 switch i 輸出 default,zero switch的執行是按照從小到大的順序執行的,最後執行default語句,如果default後面帶有break,那麼程式就會正常跳出switch,否則,程式會繼續...

詳解MySQL中default的使用

null 和 not null 修飾符 default 修飾符,auto increment 修飾符。null 和 not null 修飾符 可以在每個字段後面都加上這 null 或 not null 修飾符來指定該欄位是否可以為空 null 還是說必須填上資料 not null mysql 預設情...

C語言switch 中default子句的作用

c語言switch 中default子句的作用 首先來想一下,在switch語句中,如果表示式的值與所有的case標籤的值都不匹配怎麼辦?其實也沒什麼 所有語句不過是跳過而已。程式並不會終止,也不會提示任何錯誤,因為這種情況下在c中並不認為是個錯誤。但是,如果你並不想忽略所有case標籤的表示式值時...