了解嵌套的 defaultdict 和 'tree = lambda: defaultdict(tree)' vs '



工作形式

从另一个问题中,我看到了如何创建一个默认的默认值dictdict of defaultdict...如:

工作形式 使用它 输出
tree = lambda: defaultdict(tree)
x = tree()
x["1"]
x["2"]
x["1"]["3"]

print(json.dumps(x))
{"1": {"2": {}}, "2": {}}

在这里:

tree = lambda: defaultdict(tree)

tree是一个函数,每次执行它时,它都会创建一个默认字典。默认值是通过再次调用tree给出的,每次都会创建一个新的默认。

<小时 />

这里:

tree = defaultdict(lambda: tree)

tree是一个特定的默认。默认字典的默认值由返回tree的函数给出,相同的特定默认字典。因此,字典的默认值是其自身。

最新更新