gpt4 book ai didi

python - 如何找到列表中出现频率最高的几个元素

转载 作者:行者123 更新时间:2023-12-03 20:29:08 25 4
gpt4 key购买 nike

我下面的程序确实找到了列表中出现频率最高的元素:

numbers = [7, 1, 7, 9, 2, 9, 7, 3, 0]
counter = []

for num in range(10):
n = numbers.count(num)
counter.append(n)

largest = max(counter)
print(counter.index(largest))

输出为 7,这是正确的。

但是,如果我向列表中添加另外 9 个:

numbers = [7, 1, 7, 9, 2, 9, 7, 3, 0, 9]

这意味着列表中有两个最频繁出现的元素(在本例中,7 和 9 都出现了 3 次,如上所示),它只打印其中一个 - 在本例中为 7。

有什么方法可以更改我的代码,以便输出正确吗?

最佳答案

这是一个适用于任何类型数据的解决方案,不仅适用于事先已知范围内的正整数。

我们使用 collections.Counter 进行计数,提取最常见数字的最大计数,然后列出具有相同计数的数字:

from collections import Counter

numbers = [7, 1, 7, 9, 2, 9, 7, 3, 0, 9]
counts = Counter(numbers)
max_count = counts.most_common(1)[0][1]
out = [value for value, count in counts.most_common() if count == max_count]
print(out)
# [7, 9]

关于python - 如何找到列表中出现频率最高的几个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59128512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com