如何计算列表项的出现次数?

新手上路,请多包涵

给定一个项目,如何在 Python 中计算它在列表中的出现次数?


一个相关但不同的问题是计算集合中 每个不同元素 的出现次数,将字典或列表作为直方图结果而不是单个整数。对于该问题,请参阅 使用字典对列表中的项目进行计数

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

阅读 633
2 个回答

如果您只想要单个项目的计数,请使用 count 方法:

 >>> [1, 2, 3, 4, 1, 4, 1].count(1)
3


重要提示:如果您要计算 多个 不同的项目,这会非常慢

每个 count 调用都会遍历 n 元素的整个列表。在循环中调用 count n times 意味着 n * n 总检查,这对性能来说可能是灾难性的。

如果要计算多个项目,请使用 Counter ,它只做 n 总检查。

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

使用 Counter 如果您使用的是 Python 2.7 或 3.x 并且您想要每个元素的出现次数:

 >>> from collections import Counter
>>> z = ['blue', 'red', 'blue', 'yellow', 'blue', 'red']
>>> Counter(z)
Counter({'blue': 3, 'red': 2, 'yellow': 1})

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

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