首页 > 解决方案 > 总结许多子计数的最佳方法

问题描述

最有效的等价物是functools.reduce(operator.iadd, ({info.foo : info.ct} for info in infos), Counter())什么?

aninfo.fooint标识符,aninfo.ct是关联的子计数。目标是按标识符获取总计数。

标签: pythoncounter

解决方案


直接循环解决方案:

ctr = Counter()
for info in infos:
    ctr[info.foo] += info.ct

通过重复添加计数器以及所有小字典和计数器的构造来避免 O(n 2 )。


推荐阅读