用於產生乙個帶有預設值的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標籤的表示式值時...