collections.Counter 中所有计数的总和

新手上路,请多包涵

collections.Counter 对象中建立所有计数总和的最佳方法是什么?

我试过了:

sum(Counter([1,2,3,4,5,1,2,1,6]))

但这给出了 21 而不是 9

原文由 Baz 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 486
2 个回答

您拥有的代码将键相加(即列表中的唯一值: 1+2+3+4+5+6=21 )。

要添加计数,请使用:

 In [4]: sum(Counter([1,2,3,4,5,1,2,1,6]).values())
Out[4]: 9

文档 中的“通用模式”下提到了这个习语。

原文由 NPE 发布,翻译遵循 CC BY-SA 3.0 许可协议

对值求和:

 sum(some_counter.values())

演示:

 >>> from collections import Counter
>>> c = Counter([1,2,3,4,5,1,2,1,6])
>>> sum(c.values())
9

原文由 Martijn Pieters 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题