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

时间:2013-02-25 05:11:50

标签: python defaultdict

我遇到一种情况,其中一个键有两个值,这些值将在程序中更新。 更加坦诚,从空字典d = {}开始,我想做一些这样的事情: d[a][0] += 1d[a][1] += 1其中 a 是一种浮点类型,在程序运行时也会找到它。我可以对d = defaultdict(list([0,0]))的效果做些什么(这会产生错误)。我希望字典中的默认值是两个元素的列表。我该怎么做?

1 个答案:

答案 0 :(得分:11)

请阅读the documentation

  

如果default_factory不是None,则不带参数调用它来为给定键提供默认值,该值将插入到键的字典中并返回。

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

defaultdict(lambda: [0,0])

(无需明确使用list([0,0])[0,0]已经是一个列表。)