深入探讨区别: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中文网其他相关文章!