Python中以下行的含义是什么?
x = defaultdict(lambda: defaultdict(dict))
答案 0 :(得分:5)
让我们从内到外解决它。首先,dict
是字典类型。与其他类型一样,调用它会创建该类型的实例(也称为对象)。 defaultdict
是一种采用可调参数的类型:在调用时会生成要放入字典中的项目。当访问不存在的条目时,会发生这种情况,而不是像普通dict
那样生成KeyError
。第三,lambda
是一种基于单个表达式创建未命名函数的方法,所以这两个是相似的(第二个包含一个知道自己名字的函数,第一个没有):
y = lambda: defaultdict(dict)
def y():
return defaultdict(dict)
最后,整个事情被包裹在另一个defaultdict
中。因此,结果是x
是defaultdict
,它产生生成defaultdict
个实例的dict
个。在第三级,不再有默认值。