Collections.defaultdict 與常規Dict:了解差異
與會因缺少獨特鍵而引發一個獨特鍵而引發一個獨特的字典Python 字典不同,defaultdict 提供一個獨特鍵而引發一個獨特鍵的轉折。它自動使用預設值初始化不存在的鍵,預設值由使用者定義的「可呼叫」物件決定。為了完全掌握它的功能,讓我們深入研究它的語法和機制。
在問題提供的第一個範例中:
>>> from collections import defaultdict >>> s = 'mississippi' >>> d = defaultdict(int) >>> for k in s: ... d[k] += 1 ... >>> d.items() dict_items([('m', 1), ('i', 4), ('s', 4), ('p', 2)])
我們使用 defaultdict 並指定 int 作為可呼叫物件。當我們迭代字串 s 時,defaultdict 透過呼叫 int() 自動建立缺少的鍵。此函數傳回一個初始化為 0 的整數物件。因此,s 中的每個字母都成為結果字典 d 中的鍵,它們對應的值是它們出現的頻率。
在第二個範例中:
>>> s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)] >>> d = defaultdict(list) >>> for k, v in s: ... d[k].append(v) ... >>> d.items() [('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]
我們再次使用 defaultdict 並將 list 作為可呼叫物件傳遞。這次,使用 list() 初始化不存在的鍵。當我們迭代元組列表時,defaultdict 確保每個唯一的顏色都表示為鍵。對應的值是儲存每種顏色出現頻率的清單。
透過使用defaultdict,我們可以方便地操作缺少鍵的字典,避免潛在的 KeyError 異常並簡化我們的程式碼。
以上是Python 中的「defaultdict」與常規「dict」:什麼時候該使用哪一個?的詳細內容。更多資訊請關注PHP中文網其他相關文章!