廊坊网站搜索优化,百度搜索引擎怎么做,wordpress logo底色,合肥电商网站开发摘要
使用 defaultdict 可以简化处理字典中缺失键的情况。以下是几个使用 defaultdict 的示例#xff0c;展示了它在不同场景下的应用。
示例 1#xff1a;分组文件
假设我们有一组文件名#xff0c;想要根据文件扩展名将它们分组。我们可以使用 defaultdict 来实现这一点…摘要
使用 defaultdict 可以简化处理字典中缺失键的情况。以下是几个使用 defaultdict 的示例展示了它在不同场景下的应用。
示例 1分组文件
假设我们有一组文件名想要根据文件扩展名将它们分组。我们可以使用 defaultdict 来实现这一点。
from collections import defaultdict# 假设我们有以下文件名
files [document.txt, image.png, presentation.pptx, notes.txt, photo.jpg]# 创建一个 defaultdict默认值为列表
grouped_files defaultdict(list)# 遍历文件名并根据扩展名分组
for file in files:# 获取文件扩展名extension file.split(.)[-1]# 将文件添加到对应扩展名的列表中grouped_files[extension].append(file)# 打印分组结果
print(grouped_files)输出结果
defaultdict(class list, {txt: [document.txt, notes.txt], png: [image.png], pptx: [presentation.pptx], jpg: [photo.jpg]})示例 2计数器
使用 defaultdict 可以轻松实现计数器统计每个元素出现的次数。
from collections import defaultdict# 假设我们有一组单词
words [apple, banana, apple, orange, banana, apple]# 创建一个 defaultdict默认值为 0
word_count defaultdict(int)# 统计每个单词的出现次数
for word in words:word_count[word] 1# 打印计数结果
print(word_count)输出结果
defaultdict(class int, {apple: 3, banana: 2, orange: 1})示例 3嵌套字典
defaultdict 还可以用于创建嵌套字典方便处理多层次的数据结构。
from collections import defaultdict# 创建一个嵌套的 defaultdict
nested_dict lambda: defaultdict(lambda: defaultdict(int))
data nested_dict()# 添加数据
data[A][X] 1
data[A][Y] 2
data[B][X] 3# 打印嵌套字典
print(data)输出结果
defaultdict(function lambda at 0x..., {A: defaultdict(function lambda.locals.lambda at 0x..., {X: 1, Y: 2}), B: defaultdict(function lambda.locals.lambda at 0x..., {X: 3})})示例 4自定义默认值
你还可以定义自定义的默认值函数以便在访问缺失键时返回特定的值。
from collections import defaultdict# 自定义默认值函数
def default_value():return Not Found# 创建 defaultdict使用自定义函数
custom_dict defaultdict(default_value)# 访问一个不存在的键
print(custom_dict[missing_key]) # 输出: Not Found示例5单词首字母索引
统计单词按首字母分组
from collections import defaultdictwords [apple, banana, cherry, avocado, blueberry]
index defaultdict(list)for word in words:first_char word[0]index[first_char].append(word)print(index[a]) # 输出[apple, avocado]示例6学生成绩分组
按分数段自动归类学生姓名
from collections import defaultdictstudents [(Alice, 85), (Bob, 72), (Charlie, 90), (David, 65)]
score_groups defaultdict(list)for name, score in students:group score // 10 * 10 # 按10分分段如60-69, 70-79score_groups[group].append(name)print(score_groups[70]) # 输出[Bob]示例7图结构邻接表
构建图的邻接表表示
from collections import defaultdictedges [(A, B), (A, C), (B, D), (C, D)]
graph defaultdict(list)for u, v in edges:graph[u].append(v)print(graph[A]) # 输出[B, C]总结
defaultdict 是一个强大的工具可以帮助我们简化字典操作避免 KeyError 的出现。通过以上示例我们可以看到它在分组、计数、嵌套字典和自定义默认值等场景中的应用。