构建任意深度嵌套的Python dict,而不检查密钥是否存在
在bash中,我可以使用构建任意深度嵌套的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将在密钥不存在时为我
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)
。