Python标准库defaultdict模块使用示例

  • Post category:Python

Python标准库中的defaultdict模块是一种扩展了字典的数据结构,它在实现上和普通字典基本一致,但在某些特定场景下使用起来会更加方便,比如创建字典时可以指定默认值,当访问字典未定义的键时,返回默认值而不是报错。

本篇攻略将详细介绍Python标准库defaultdict模块的使用方法,包括创建和初始化defaultdict对象,以及如何利用它统计数据、分组计数等实际应用场景。

创建和初始化defaultdict对象

要使用defaultdict模块,首先需要导入该模块:

from collections import defaultdict

defaultdict创建的对象和普通字典对象在用法上基本相同。例如,下面的示例代码创建了一个defaultdict对象,并添加了一些键值对:

# 创建一个 defaultdict 对象,初始值为 []
cc = defaultdict(list) 

# 添加键值对,键为 "category1",值为 1
cc['category1'].append(1) 

# 输出字典
print(cc)
# 输出: defaultdict(<class 'list'>, {'category1': [1]})

上述代码定义了一个defaultdict对象,并指定初始值为空列表,即键不存在时会返回空列表。当向这个字典对象添加键值对时,它会像普通的字典对象一样存储。

同时也可以指定其他初始值,例如:

# 创建一个 defaultdict 对象,初始值为 0
dd = defaultdict(int)

# 添加键值对,键为 "key1",值为 1
dd['key1'] = 1 

# 输出字典
print(dd)
# 输出:  defaultdict(<class 'int'>, {'key1': 1})

上述代码定义了一个defaultdict对象,并将初始值指定为0,即键不存在时会返回0。当向这个字典对象添加键值对时,它会像普通的字典对象一样存储。

使用defaultdict统计数据

defaultdict非常适合用于统计数据。下面的示例代码演示了如何使用defaultdict计算一个字符串中各个单词的出现次数:

from collections import defaultdict

# 文本内容
text = "the quick brown fox jumps over the lazy dog"

# 将文本内容转换成列表
words = text.split()

# 创建一个默认值为int的defaultdict对象
word_count = defaultdict(int)

# 遍历单词列表,统计每个单词出现的次数
for word in words:
    word_count[word] += 1

# 输出单词出现次数
for k, v in word_count.items():
    print(k, v)

上述代码定义了一个defaultdict对象,并将初始值指定为0。在遍历单词列表时,逐个将单词作为键存入defaultdict对象中,并给相应的键值加1,从而实现计数操作。最后输出单词出现次数。

使用defaultdict进行分组计数

defaultdict还可以用于对数据进行分组计数。下面的示例代码演示了如何使用defaultdict将一个学生名单按照性别进行分组:

from collections import defaultdict

# 学生名单
students = [('Alice', 'F'), ('Bob', 'M'), ('Charlie', 'M'), ('David', 'M'), ('Eve', 'F')]

# 创建默认值为list的defaultdict对象
grouped_students = defaultdict(list)

# 按性别进行分组
for student, gender in students:
    grouped_students[gender].append(student)

# 输出分组结果
for gender in grouped_students:
    print('Gender:', gender)
    for student in grouped_students[gender]:
        print(student)

上述代码定义了一个defaultdict对象,并将初始值指定为空列表。在遍历学生名单时,按照学生性别对学生进行分组,并将每个学生姓名添加到对应的组别列表中。最后输出分组结果。

总结

本篇攻略介绍了Python标准库defaultdict模块的使用方法,包括创建和初始化defaultdict对象,以及如何利用它统计数据、分组计数等实际应用场景。defaultdict通过提供默认值的方式,让我们在使用字典时更加方便快捷,避免了不必要的异常报错和判断语句。