我认为第一行意味着当我要求x[k]
一个不存在的键k
(例如类似的语句v=x[k]
)时,键值对(k,0)
将被自动添加到字典中,就像该语句x[k]=0
首先执行一样。
那就对了。这是习惯用语
x = defaultdict(int)
对于y
,当您执行时y["ham"]["spam"]
,如果密钥不存在"ham"
,y
则将其插入。与之关联的值将变成一个defaultdict
,其中"spam"
将自动插入一个带有的值0
。
即,y
是一种“两层” defaultdict
。如果为"ham" not in y
,则评估y["ham"]["spam"]
就像在做
y["ham"] = {}
y["ham"]["spam"] = 0
就普通而言dict
。