📅  最后修改于: 2023-12-03 14:40:41.902000             🧑  作者: Mango
defaultdict
是Python中的一个内置库 collections
中的一种数据结构,它可以为字典里的key提供一个默认值。如果我们使用一个找不到的key去访问字典中的value,那么 defaultdict
就会返回一个定义好的默认值,而不是抛出 KeyError 异常。
defaultdict
是Python的标准库,所以你不需要额外安装它,只需要在你的python文件中导入即可开始使用。
from collections import defaultdict
defaultdict
defaultdict
的创建类似于普通的字典,不过需要通过一个工厂函数来指定默认值的类型。
my_defaultdict = defaultdict(lambda: 0)
上面的代码中,lambda: 0
定义了一个返回默认值为 0 的函数。
访问 defaultdict
中不存在的键将会返回默认值:
my_defaultdict = defaultdict(lambda: 0)
print(my_defaultdict["key"]) # 0
defaultdict
的更新操作同样适用于普通字典:
my_defaultdict = defaultdict(lambda: 0)
my_defaultdict["key"] = 5
print(my_defaultdict["key"]) # 5
defaultdict
也可以用于多级嵌套结构。例如,一个 defaultdic
t 可以作为另一个 defaultdict
的默认项:
employees = defaultdict(lambda: defaultdict(int))
employees["Google"]["John"] = 100
employees["Google"]["Bob"] = 200
employees["Apple"]["Lisa"] = 300
employees["Apple"]["Tim"] = 400
print(employees["Google"]["John"]) # 100
上面的代码中,我们定义了一个 employees
的 defaultdict
。当没有名叫 Google
和 Apple
的子默认字典时,它们会被自动创建。
defaultdict
提供了一个简便的方法来处理字典中的默认值。通过使用默认值,我们可以避免在创建字典时花费太多的代码和时间来处理特殊情况。