获取无序列表中元素的频率
考虑一个无序列表,例如 a = [5, 1, 2, 2, 4、3、1、2、3、1、1、5、2]。目标是确定列表中每个唯一值的频率。期望的输出类似于 b = [4, 4, 2, 1, 2],表示值 1 出现四次,2 出现四次,3 出现两次,4 出现一次,5 出现两次。
在 Python 中,此任务的一个便捷解决方案是利用 collections.Counter 类。在 Python 2.7 及更高版本中,此类简化了对无序集合中元素出现次数进行计数的过程:
import collections a = [5, 1, 2, 2, 4, 3, 1, 2, 3, 1, 1, 5, 2] counter = collections.Counter(a)
collections.Counter 对象 counter,保存列表中每个唯一值的计数。您可以使用各种方法访问计数:
按照指定的顺序获取计数在问题中,您可以按排序顺序迭代键:
[counter[x] for x in sorted(counter.keys())]
如果您使用的是 Python 2.6 或更早版本,您可以下载来自提供的链接的 collections.Counter 的实现,并在您的代码中使用它。
以上是如何高效地统计Python无序列表中的元素频率?的详细内容。更多信息请关注PHP中文网其他相关文章!