获取嵌套字典中的值的计数

时间:2014-09-08 14:42:54

标签: python dictionary counter

我有一个嵌套字典,例如:

from collections import defaultdict, OrderedDict
dict = defaultdict(lambda:OrderedDict())
dict[1]['ab'] = 2343
dict[1]['ac'] = 6867
dict[1]['ad'] = 2345
dict[2]['sa'] = 2355
dict[2]['sg'] = 4545
dict[2]['sf'] = 2445
dict[3]['df'] = 9988

我想要计算每个键的值。每个项目的计数将通过算法运行,以确定需要添加/删除下一个值的位置。现在我就是这个:

count = {}
for k, v in dict.items():
    count[k] = len(v)

Scaling 在这里非常重要,因为我正在处理非常大的数据库。每次我对字典做一些事情,我都要计算,如果我要访问它一百万次,我每次都要创建count。是否有更高效/ pythonic的方式来做到这一点?可以创建一个类似于this的自定义类,它会在创建/删除每个项目时对其进行计数吗?

1 个答案:

答案 0 :(得分:0)

创建自己的类继承dict类并添加所需的count数组,并使用新的add / remove函数相应地更新它。 添加一个给定键返回计数的函数,这样您可以获得更新的计数,而不会浪费任何额外的时间,除了您在字典中添加/删除所花费的时间。 有一些如何子类化和覆盖添加/删除函数here

的示例