python - 查找 float 列表中最频繁出现的情况

标签 python python-3.x

from collections import Counter
from collections import defaultdict

L = [1.0,1.0,2.0,2.0,3.0,4.0,5.1,5.1]
d = defaultdict(float)
for i in L:
    d[i] += 1
most_frequent = sorted(Counter(L).most_common(), key=lambda x: x[1], reverse=True)[0]
print(most_frequent)

输出:(1.0, 1)

在这种情况下,代码应该输出“Your mode(s) are 1.0, 2.0, 5.1”。但是我运行该程序并只获得第一个模式,而不是所有模式包括

如何解决这个问题?

最佳答案

您可以简单地使用 Countermost_common 函数的第二个参数,如下所示

print([num for num, count in Counter(L).most_common(3)])

输出

[1.0, 2.0, 5.1]

关于python - 查找 float 列表中最频繁出现的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20135015/

相关文章:

python - 查找总和在目标特定范围内的所有可能组合

python - Artifactory Conda 包返回 MD5 不匹配错误

python-3.x - 代码不会要求用户输入?

python - 如何从一系列 2D 图像创建 3D 模型?使用Python

python - 如何在kivy python中使用滚动条

python - 为什么在运行 Locust 时出现 403 错误?

python - Django 删除具有特定 key_prefix 的缓存

python - Pipenv:找不到命令

python-3.x - 无效语法 : Create table sortkey auto with initial sortkeys

python-3.x - 为 conda 安装虚拟环境时出现 ClobberError