python-defaultdict

python-defaultdict

defaultdict 是 Python 标准库 collections 模块中的一个数据类型,它是 Python 字典 (dict) 的一个子类。

与普通的字典不同,defaultdict 在创建时需要提供一个工厂函数(factory function),当你尝试访问字典中不存在的键时,它会自动调用这个工厂函数来为该键创建一个默认值,而不是像普通字典那样抛出 KeyError 异常。

在代码中的 defaultdict(list) 中:

例如,使用普通字典时的代码:

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-零值