我有一种情况,一个键将有两个值,这些值将在程序期间更新。更具体地,从一个空字典 d = {} 开始,我想做这样的事情:
d[a][0] += 1
或者d[a][1] += 1
其中a是一个浮点类型,在程序运行时也可以找到它。我可以做一些事情d = defaultdict(list([0,0]))
(这会产生错误)吗?我希望字典中的默认值是两个元素的列表。我该怎么做呢?
问问题
6197 次
1 回答
20
只需阅读文档:
如果
default_factory
不是 None,则不带参数调用它以为给定键提供默认值,该值插入到键的字典中,并返回。
也就是说,defaultdict 的参数不是默认值,它是一个被调用以产生默认值的函数。所以就这样做:
defaultdict(lambda: [0,0])
(无需list([0,0])
显式使用。 [0,0]
已经是一个列表。)
于 2013-02-25T05:14:42.460 回答