深入探討區別:Collections.defaultdict 與普通Dict
在Python 中,預設字典(collections.defaultdict) 不同於常規字典關重要的方式。標準字典在存取不存在的鍵時會引發 KeyError,而 defaultdict 會透過呼叫指定的函數自動建立遺失的項目。
理解範例
讓我們檢查提供的範例:
d = defaultdict(int)
這裡,int() 是預設函數,它使用整數值(預設為0)初始化缺失的鍵。
for k in s: d[k] += 1
此循環迭代字串 s 中的每個字元 (k) 並遞增其儲存在 defaultdict 中的對應計數。
d.items() dict_items([('m', 1), ('i', 4), ('s', 4), ('p', 2)])
結果,我們得到了一個包含字元頻率的字典。
在第二個例如:
d = defaultdict(list)
list() 是預設函數,建立空列表作為缺少鍵的預設值。
for k, v in s: d[k].append(v)
此循環將 list 中的鍵和值配對並附加值到對應鍵的清單。
d.items() [('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]
結果是一個字典,其中鍵是顏色,值是原始值中對應值的列表列表。
以上是Python 字典:什麼時候應該使用「collections.defaultdict」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!