Python defaultdict(可以在访问字典中不存在的键时自动创建默认值)(默认字典、默认值字典)(应用:构建多级字典、模拟类对象动态设置和获取属性、实现图论图结构)(可变字典)
defaultdict
是Python的collections模块提供的一个类,它是一个字典,其特点在于会自动创建默认值。当你尝试获取一个不存在的键时,defaultdict
会自动调用一个工厂函数来生成一个默认值。
解决方案:
- 直接使用
defaultdict
创建一个默认值字典。
from collections import defaultdict
# 使用 int 作为工厂函数,这样字典中不存在的键会被自动赋予默认值 0
dd = defaultdict(int)
print(dd['a']) # 输出:0
- 使用自定义的工厂函数。
from collections import defaultdict
# 使用 lambda 函数作为工厂函数,这样字典中不存在的键会被自动赋予默认值 'N/A'
dd = defaultdict(lambda: 'N/A')
print(dd['a']) # 输出:'N/A'
- 使用类作为工厂函数。
from collections import defaultdict
class ListFactory:
def __call__(self):
return []
# 使用 ListFactory 类作为工厂函数,这样字典中不存在的键会被自动赋予默认值 []
dd = defaultdict(ListFactory)
print(dd['a']) # 输出:[]
注意:defaultdict
的默认值是在你尝试访问不存在的键时才创建的,如果你事先知道某个键可能不存在,你也可以手动设置默认值。
from collections import defaultdict
dd = defaultdict(int)
dd['a'] = 5 # 手动设置键 'a' 的值为 5
print(dd['a']) # 输出:5
print(dd['b']) # 输出:0,因为 'b' 键不存在,自动创建默认值
以上就是 defaultdict
的基本使用方法。
评论已关闭