python 默认字典

笔记2024-04-022 人已阅来源:网络

Python默认字典(defaultdict)是Python内置字典的子类,它们在某些情况下可以替代Python内置字典。默认字典在创建时需要指定一个默认值类型,当字典中的键不存在时,它就会自动创建一个默认值。这个默认值是由程序员在创建字典时指定的,它可以是一个常量或者一个函数。

# 创建一个默认字典
from collections import defaultdict
my_dict = defaultdict(int)
# 向字典中添加键值对
my_dict["a"] = 1
my_dict["b"] = 2
my_dict["c"] = 3
# 如果键不存在,则会自动创建一个值为默认值的键值对
print(my_dict["d"])  # 0
# 现在字典中有一个值为0的键值对
print(my_dict)  # defaultdict(, {'a': 1, 'b': 2, 'c': 3, 'd': 0})

在上面的例子中,默认值类型是int,因此当访问不存在的键时会自动创建一个默认值0。如果默认值类型是list、set、tuple等可变类型,它们可以用来在字典中添加多个值。例如,如果默认值类型是list,可以通过append方法添加值。

# 创建一个默认字典,值为列表类型
my_dict = defaultdict(list)
# 向字典中添加键值对
my_dict["a"].append(1)
my_dict["a"].append(2)
my_dict["b"].append(3)
# 如果键不存在,则会自动创建一个值为[]的键值对
my_dict["c"].append(4)
# 现在字典中有值为[1, 2]和[3]和[4]的键值对
print(my_dict)  # defaultdict(, {'a': [1, 2], 'b': [3], 'c': [4]})

除了用于替代Python内置字典之外,Python默认字典还有其他的应用场景。例如,它们可以用来计数,记录字母出现的次数等。

# 创建一个默认字典,值为int类型
letter_count = defaultdict(int)
# 计数
for letter in "ababcacb":
letter_count[letter] += 1
# 现在字典中存储了每个字母出现的次数
print(letter_count)  # defaultdict(, {'a': 2, 'b': 3, 'c': 2})

Python默认字典是Python内置字典的有用补充,它们可以大大简化某些任务的代码。它们的使用非常简单,只需要指定默认值类型即可。