Python collections defaultdict
defaultdict 是 Python 标准库 collections 模块中的一种字典子类。它与普通字典类似,但在访问不存在的键时不会抛出 KeyError 异常,而是自动调用指定的工厂函数生成一个默认值并将该键与默认值关联。
这一特性使得 defaultdict 在需要对字典中每个键赋予初始值或进行累加统计等操作时非常方便和高效。
基本用法
defaultdict 的构造函数需要一个工厂函数作为参数,这个工厂函数用来为字典中不存在的键生成默认值。常见的工厂函数包括 int
(生成 0)、list
(生成空列表)、set
(生成空集合)等。使用时只需通过工厂函数参数创建 defaultdict 对象,当访问不存在的键时,会自动调用该工厂函数生成对应的默认值,从而避免手动判断键是否存在。
例如,当使用 int 作为工厂函数时,每个新键都会被赋予默认值 0,从而使得对数值进行累加操作变得简单而直接。
使用 Demo 示例
下面的示例展示了如何使用 defaultdict 来统计一个字符串中各字符出现的次数。首先导入 collections 模块,然后创建一个使用 int 作为工厂函数的 defaultdict 对象。遍历字符串中的每个字符,累加其出现次数,最终输出每个字符的计数结果。
from collections import defaultdict
# 创建一个 defaultdict,指定 int 作为默认工厂函数,默认值为 0
char_count = defaultdict(int)
# 待统计的字符串
text = "hello world"
# 遍历字符串中的每个字符
for char in text:
# 对每个字符进行计数累加
char_count[char] += 1
# 输出统计结果
for char, count in char_count.items():
print(f"'{char}': {count}")
在这个示例中,当程序第一次遇到某个字符时,由于该键在字典中不存在,defaultdict 会自动调用 int() 返回 0,然后再进行累加。这样就避免了需要事先判断键是否存在的繁琐操作,同时使代码更加简洁易读。
本文作者:Maeiee
本文链接:Python collections defaultdict
版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!
喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!