Python defaultdict:访问缺失键为何新增记录

defaultdict能在缺失键被索引访问时创建默认值。于是一个看似读取的表达式,也可能改变容器内容;如果只想查询是否存在,需要选对访问方式。

浅色开发模块与透明工作盒
浅色主题概念配图,选自本站AI生成图库;非事件现场或产品实测截图。

索引访问会调用默认工厂

示例使用defaultdict(list)。访问groups["A"]时不存在A,就创建一个新列表并保存到字典中。这适合按类别追加数据,但如果只是探测大量未知名称,可能留下原本不想建立的空条目。

get不会触发同样的创建

groups.get("B")沿用普通字典语义,未提供默认值时返回None,并不会调用默认工厂。B是否存在也可以用成员判断。不要把get返回None与已经创建空列表当成同一结果。

检查内容变化而不只看返回值

下面在每一步核对键是否进入字典,展示索引与get的差别。真实程序若依赖字典条目数做统计,应留意这些隐式创建;选择容器时让读写行为符合预期。示例不访问外部资料。

可以运行的练习

from collections import defaultdict
groups = defaultdict(list)
assert groups.get("B") is None
assert "B" not in groups
assert groups["A"] == []
assert "A" in groups
groups["A"].append(1)
assert dict(groups) == {"A": [1]}
print(dict(groups))

示例已在本地隔离环境运行检查。使用固定输入,不访问外部接口,也不读取真实业务文件。

资料与继续学习

Python:defaultdict与缺失键。资料查阅日期:2026年10月8日。步骤与练习由本站整理。

资料查阅与编辑日期:2026年10月8日。作者:玖柒。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享