python - python中所有嵌套字典的值总和

标签 python dictionary

我有一本计数器字典,例如:

from collections import Counter, defaultdict

numbers = defaultdict(Counter)

numbers['a']['first'] = 1
numbers['a']['second'] = 2
numbers['b']['first'] = 3

我想求和:1+2+3 = 6

在 python 3 中执行此操作的最简单/惯用的方法是什么?

最佳答案

使用嵌套理解:

sum(x for counter in numbers.values() for x in counter.values())

或者先对计数器求和(从一个空的开始),然后对它们的值求和:

sum(sum(numbers.values(), Counter()).values())

或者首先是每个计数器的值,然后是中间结果:

sum(sum(c.values()) for c in numbers.values())

或者使用链:

from itertools import chain
sum(chain.from_iterable(d.values() for d in numbers.values()))

我更喜欢第一种方式。

关于python - python中所有嵌套字典的值总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15350698/

相关文章:

python - 是否可以在 Python 中访问 GetLongPathName() Win32 API?

ios - 从字典创建 SKTextureAtlas

ios - 为 iOS 实现 Google map

python - 属性错误: '_GzipStreamFile' object has no attribute '_checkReadable

python - 将来自 2 个字典的值组合成一个 np.array python

python - 如何按嵌套字典中的元素访问 pandas 多重索引?

json - 从具有未知结构 SWIFT 的 JSON 中查找值

python - 使用 pydub 导出时出错 - 如何为 pydub 安装 mp3 编解码器?

python - 具有多个 Django 实例的 celery

python - 记录文件打开调试的位置 "ResourceWarning: unclosed file"