python-defaultdict
python-defaultdict
defaultdict
是 Python 标准库 collections
模块中的一个数据类型,它是 Python 字典 (dict
) 的一个子类。
与普通的字典不同,defaultdict
在创建时需要提供一个工厂函数(factory function),当你尝试访问字典中不存在的键时,它会自动调用这个工厂函数来为该键创建一个默认值,而不是像普通字典那样抛出 KeyError
异常。
在代码中的 defaultdict(list)
中:
- 工厂函数是
list
,它会返回一个空列表[]
- 当你访问一个不存在的键时,
defaultdict
会自动为这个键创建一个空列表 - 这让我们可以直接对不存在的键进行
append
等操作,无需提前检查键是否存在
例如,使用普通字典时的代码:
grouped_files = {}
for file_path in dump_files:
uniq_key_value = extract_value(file_path)
if uniq_key_value not in grouped_files:
grouped_files[uniq_key_value] = []
grouped_files[uniq_key_value].append(file_path)
使用 defaultdict
可以简化为:
grouped_files = defaultdict(list)
for file_path in dump_files:
uniq_key_value = extract_value(file_path)
grouped_files[uniq_key_value].append(file_path)
这样可以让代码更加简洁,避免了重复的检查和初始化操作。
需要注意的是,使用 defaultdict
需要导入 collections
模块:
from collections import defaultdict
其实就类似 go-零值