python collections.defaultdict,长度为2的列表

Dur*_*tta 4 python defaultdict

我有一种情况,一个键将有两个值,将在程序期间更新.更conretely,从空字典d开始= {},我希望做一些这样的事情: d[a][0] += 1或者d[a][1] += 1其中一个是在程序运行时,还发现了一个float类型.我可以做一些事情d = defaultdict(list([0,0]))(这会产生错误).我希望字典中的默认值是两个元素的列表.我该怎么做呢?

Bre*_*arn 13

只需阅读文档:

如果default_factory不是None,则在不带参数的情况下调用它来为给定键提供默认值,将此值插入键的字典中并返回.

也就是说,defaultdict的参数不是默认值,它是一个被调用以产生默认值的函数.所以这样做:

defaultdict(lambda: [0,0])
Run Code Online (Sandbox Code Playgroud)

(没有必要list([0,0])明确使用. [0,0]已经是一个列表.)