了解 Python 中 defaultdict 的使用

5 python

我开始学习 Python 并遇到了一段代码,我希望你们中的一个人能帮助我理解。

from collections import defaultdict
dd_dict = defaultdict(dict)
dd_dict["Joel"]["City"] = "Seattle"
Run Code Online (Sandbox Code Playgroud)

结果:

{ "Joel" : { "City" : Seattle"}}
Run Code Online (Sandbox Code Playgroud)

我遇到问题的部分是第三行。有人可以向我解释一下这里发生了什么吗?

yos*_*e_k 6

第三行在字典中插入字典。通过使用 dict 作为默认字典中的默认值,您告诉 python 用空字典初始化每个新的 dd_dict 值。上面的代码相当于

dd_dict["Joel"] = {}
dd_dict['Joel"]["City"] = "Seattle"
Run Code Online (Sandbox Code Playgroud)

如果您不使用默认字典,第二行将引发关键错误。因此,默认字典是通过初始化数据结构的默认值来避免此类错误的一种方法。


MSe*_*ert 3

来自以下文档defaultdict

如果default_factory不是None,则不带参数调用它来为给定键提供默认值,该值将插入到该键的字典中并返回。

由于"Joel"不作为 key 存在,因此该dd_dict["Joel"]部分创建一个空字典作为 key 的值"Joel"。接下来的部分["City"] = "Seattle"就像添加一个普通的键值对到字典中一样——在本例中是dd_dict["Joel"]字典。