创建无限级递归defaultdict
在Python中,defaultdict是一个多功能工具,它为字典中缺失的键提供默认值。但是,是否可以创建无限级递归defaultdict?这意味着创建一个 defaultdict,其中默认值也是一个 defaultdict,从而有效地创建嵌套的 defaultdict。
最初,人们可能期望 x = defaultdict(defaultdict) 会创建一个两级 defaultdict,但访问 x[0 ][0] 导致 KeyError。要实现无限级递归,需要另一种方法。
一种解决方案是使用 lambda 函数作为默认值:
x = defaultdict(lambda: defaultdict(dict))
这会创建一个 defaultdict,其中默认值为返回另一个 defaultdict 并以字典作为默认值的函数。这允许无限级递归,因为访问 x[0][1][0] 在嵌套的 defaultdicts 中创建一个空字典。
与其他答案中提出的递归方法相比,这种方法具有几个优点:
以上是如何在 Python 中创建无限级递归 defaultdict?的详细内容。更多信息请关注PHP中文网其他相关文章!