python - 如何计算嵌套字典中的项目

标签 python python-3.x dictionary counter defaultdict

我想收集每个日期的结果。

对于每个日期增量传递失败结果,如果不存在则在字典中添加日期。 我应该使用 dict in dict 还是 defaultdict?

例如dates= {'2018-03-20': [{'pass': 2}, {'fail': 3}]}

我想添加新日期(如果不在日期中)并更新特定日期的“通过”/“失败”值。

最佳答案

正如@Jean-FrançoisFabre 指出的那样,最简单的方法是使用 Counter 对象的 defaultdict

集合 documentation包含有关这些工具的详细信息。

from collections import defaultdict, Counter

d = defaultdict(Counter)

d['2018-03-20']['pass'] += 1
d['2018-03-20']['fail'] += 1
d['2018-03-20']['pass'] += 1
d['2018-04-20']['pass'] += 1
d['2018-05-20']['pass'] += 1
d['2018-04-20']['fail'] += 1

结果:

defaultdict(collections.Counter,
            {'2018-03-20': Counter({'fail': 1, 'pass': 2}),
             '2018-04-20': Counter({'fail': 1, 'pass': 1}),
             '2018-05-20': Counter({'pass': 1})})

关于python - 如何计算嵌套字典中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49393683/

相关文章:

python - 构建扩展时,distutils 会忽略对 setup.py 的更改吗?

Python Scrapy - 无法登录网站

python - 如何在不调整大小和不修改颜色的情况下查看此 .fits 图像?

python 节省纯数字字 rune 本文件大小的注意事项

java - 按公共(public)键对对象进行分组

python - 如何对 numpy 矩阵中的每个元素执行操作?

Python : Regex, 在字符串上查找重复项

python - 什么时候使用 trunc() 而不是 int() 将浮点型数字转换为整数更好?

android - 如何更改 .map 文件中的 mapsforge 街道名称

javascript - 从 Map.values() 选择一个属性