Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
构建任意深度嵌套的Python dict,而不检查密钥是否存在_Python_Dictionary_Nested_Associative Array - Fatal编程技术网

构建任意深度嵌套的Python dict,而不检查密钥是否存在

构建任意深度嵌套的Python dict,而不检查密钥是否存在,python,dictionary,nested,associative-array,Python,Dictionary,Nested,Associative Array,在bash中,我可以使用mkdir的-p标志来创建一个多目录深的目录,而无需检查其所有祖先目录是否存在,并在需要时创建它们;它将创建任何不存在的父目录rm-射频a;mkdir-p a/b/c/d/e/f将创建a,然后在其中创建b,然后在b中创建c,依此类推,一直到f 在Python中,我希望能够对字典执行类似的操作: nested_dict=dict() 嵌套的dict[“a”][“b”][“c”][“d”][“e”]=“f” collections.defaultdict将在密钥不存在时为我

在bash中,我可以使用
mkdir
-p
标志来创建一个多目录深的目录,而无需检查其所有祖先目录是否存在,并在需要时创建它们;它将创建任何不存在的父目录<代码>rm-射频a;mkdir-p a/b/c/d/e/f将创建
a
,然后在其中创建
b
,然后在
b
中创建
c
,依此类推,一直到
f

在Python中,我希望能够对字典执行类似的操作:

nested_dict=dict()
嵌套的dict[“a”][“b”][“c”][“d”][“e”]=“f”

collections.defaultdict
将在密钥不存在时为我提供一级“宽恕”(例如,如果嵌套的dict.keys()中没有“a”):嵌套的dict[“a”[“b”]=“something”如果嵌套的dict是defaultdict(dict),则不会引发异常但这不是一个任意的深层次。目前在Python中有没有一种很好的方法来做这样的事情?

您可以通过创建一个
lambda
来实现这一点,它在构造函数中给出一个新的
defaultdict

create_dict = lambda : nested_dict
nested_dict = default_dict(create_dict)

使用
infinity\u dict=lambda:collections.defaultdict(infinity\u dict)