defaultdict的含义(lambda:defaultdict(dict))

时间:2018-05-09 06:48:07

标签: python defaultdict

Python中以下行的含义是什么?

x = defaultdict(lambda: defaultdict(dict))

1 个答案:

答案 0 :(得分:5)

让我们从内到外解决它。首先,dict是字典类型。与其他类型一样,调用它会创建该类型的实例(也称为对象)。 defaultdict是一种采用可调参数的类型:在调用时会生成要放入字典中的项目。当访问不存在的条目时,会发生这种情况,而不是像普通dict那样生成KeyError。第三,lambda是一种基于单个表达式创建未命名函数的方法,所以这两个是相似的(第二个包含一个知道自己名字的函数,第一个没有):

y = lambda: defaultdict(dict)

def y():
    return defaultdict(dict)

最后,整个事情被包裹在另一个defaultdict中。因此,结果是xdefaultdict,它产生生成defaultdict个实例的dict个。在第三级,不再有默认值。