
Python
根据 defaultdict 可以接受依赖于给定缺失键的可调用项。defaultdict 是 Python 中 collections 模块中的一个类,它扩展了内置字典类 dict。与普通的字典不同,defaultdict 允许我们指定一个默认值的类型,在访问字典中不存在的键时,会自动返回指定类型的默认值。
defaultdict 的一个常见场景是在处理字典中的计数操作。当我们需要统计一些元素出现的频率时,可以使用 defaultdict 来避免手动检查键是否存在和更新计数的繁琐操作。下面是一个例子,我们将使用 defaultdict 来统计一段文字中每个单词出现的次数:Pythonfrom collections import defaultdicttext = "This is a sample text. It contAIns several words, some of which may repeat."# 使用 str.split() 方法将文本分割成单词列表words = text.split()# 创建一个默认值为 0 的整数字典word_counts = defaultdict(int)# 遍历单词列表,更新字典中每个单词的计数for word in words: word_counts[word] += 1# 打印每个单词及其出现次数for word, count in word_counts.items(): print(f"{word}: {count}")在上面的例子中,我们首先将文本分割成单词列表,并创建了一个默认值为 0 的整数字典 word_counts。然后,我们遍历单词列表,对于每个单词,使用 defaultdict 的特性自动创建键,并将默认值(初始为 0)加一。最后,我们打印每个单词及其出现的次数。使用 defaultdict 可以使我们的代码更加简洁和高效,省去了手动检查键是否存在的步骤。此外,我们还可以通过传递一个可调用对象作为 default_factory 参数,来定义更复杂的默认值。下面是一个使用 defaultdict 和 lambda 函数来统计每个单词长度的例子:Pythonfrom collections import defaultdicttext = "This is a sample text. It contAIns several words, some of which may repeat."# 使用 str.split() 方法将文本分割成单词列表words = text.split()# 创建一个默认值为 lambda: 0 的函数字典word_lengths = defaultdict(lambda: 0)# 遍历单词列表,更新字典中每个单词的长度for word in words: word_lengths[word] = len(word)# 打印每个单词及其长度for word, length in word_lengths.items(): print(f"{word}: {length}")在上面的例子中,我们创建了一个默认值为 lambda: 0 的函数字典 word_lengths。这意味着当访问字典中不存在的键时,会调用 lambda 函数并返回其结果,即 0。然后,我们遍历单词列表,对于每个单词,将其长度作为值存储在字典中。最后,我们打印每个单词及其长度。通过传递一个可调用对象作为 default_factory 参数,我们可以根据具体需求定义更复杂的默认值,进一步扩展了 defaultdict 的灵活性和实用性。使用 defaultdict 统计字母出现次数除了统计单词的出现次数,我们还可以使用 defaultdict 来统计文本中每个字母的出现次数。下面是一个例子:Pythonfrom collections import defaultdicttext = "This is a sample text. It contAIns several words, some of which may repeat."# 创建一个默认值为 0 的整数字典letter_counts = defaultdict(int)# 遍历文本中的每个字符,更新字典中每个字母的计数for char in text: if char.isalpha(): letter_counts[char.lower()] += 1# 打印每个字母及其出现次数for letter, count in letter_counts.items(): print(f"{letter}: {count}")在上面的例子中,我们创建了一个默认值为 0 的整数字典 letter_counts。然后,我们遍历文本中的每个字符,对于每个字母,将其转换为小写并加一。最后,我们打印每个字母及其出现的次数。使用 defaultdict 可以极大地简化统计字母出现次数的操作,使我们的代码更加简洁和易读。在本文中,我们介绍了 defaultdict 类的用法,并通过几个例子展示了它的实际应用。defaultdict 可以接受依赖于给定缺失键的可调用项,使我们能够更方便地处理字典中的计数操作。无论是统计单词的出现次数、单词长度,还是统计字母的出现次数,使用 defaultdict 都能使我们的代码更加简洁、高效、易读。如果你在处理字典时经常遇到需要设置默认值的情况,那么 defaultdict 将是一个非常有用的工具。Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号