嵌套的默认字典计数值

时间:2017-01-09 22:21:05

标签: python dictionary count

我有一个带有嵌套字典的defaultdict,我试图从中获取值的总和。但我一直在努力寻找一种方法来做到这一点。

在下面的示例中,我尝试计算所有count值:

from collections import defaultdict

x = defaultdict(dict)

x['test1']['count'] = 14
x['test4']['count'] = 14
x['test2']['count'] = 14
x['test3']['count'] = 14

print x

""" methods I've tried """

# print x.values()
# print sum(x for y in x.values() for x in y['count'].iteritems())
# print sum(x.itervalues())

我尝试过的上述方法(在许多不同的变体中)并没有提供所需的结果。

关于我可能出错的任何线索或帮助?

3 个答案:

答案 0 :(得分:1)

只需ab -n 1000 -c 100 http://localhost:3000/render/ 即可。

答案 1 :(得分:1)

如果你必须计算'count'密钥的总和,你可以这样做:

>>> sum(y['count'] for y in x.values())
56

如果有可能还有其他键(除了'count'),并且你想要计算所有值的总和,那么你必须这样做:

>>> sum(z for y in x.values() for z in y.values())
56

# OR,
# import itertools
# sum(itertools.chain(*[y.values() for y in x.values()]))

答案 2 :(得分:1)

如果要对所有子词典的值求和,请求和两次:

>>> sum(sum(y.values()) for y in x.values())
56