📜  defaultdict 计数键值对 - Python (1)

📅  最后修改于: 2023-12-03 15:30:25.827000             🧑  作者: Mango

defaultdict 计数键值对 - Python

在 Python 中,defaultdict 是一个非常有用的数据结构。它是 dict 的一个子类,可以指定默认值,并且在访问不存在的键时会返回这个默认值。defaultdict 的初始化函数接受一个可调用对象(函数、lambda 表达式等),用于指定默认值。

下面介绍 defaultdict 的常见用途:计数键值对。

假设我们有一个字符串列表,需要统计每个字符出现的次数。我们可以使用 defaultdict 来统计计数。

from collections import defaultdict

str_list = ['apple', 'banana', 'cherry']

char_count = defaultdict(int)
for s in str_list:
    for c in s:
        char_count[c] += 1

print(char_count)

运行结果如下:

defaultdict(<class 'int'>, {'a': 2, 'p': 3, 'l': 2, 'e': 3, 'b': 1, 'n': 2, 'c': 2, 'h': 1, 'r': 2, 'y': 1})

上面的代码中,我们首先创建了一个空的 defaultdict 对象 char_count,并指定默认值为 int 类型的零。然后我们遍历字符串列表中的每个字符串,再遍历每个字符串中的每个字符,将字符计数加一。

这种方法的优点是代码简洁、适用范围广,不仅适用于字符串列表,还适用于任何序列数据类型。而且使用 defaultdict 比手动创建计数字典更为方便和优雅。

注意:如果我们使用普通的字典对象来计数,会出现 KeyError 异常,需要手动判断如果不存在就添加一个初始值。而使用 defaultdict 可以省略掉这个判断过程。