You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取数据集中最高频率的键(众数/多众数)?代码求助

获取字典中对应最大值的所有键(众数)

首先,注意不要用dict作为变量名——这会覆盖Python内置的dict类型,建议改成count_dict这类名称,避免潜在问题。

基于你已经完成的统计逻辑,只需两步就能拿到所有对应最大值的键:

  1. 提取字典中值的最大值(也就是数据的最高出现次数)
  2. 筛选出所有值等于该最大值的键

基于你的原始思路的完整代码

data = [3, 4, 3, 4, 4, 3, 1, 1]

# 替换dict为count_dict,避免覆盖内置类型
count_dict = {}
for number in data:
    if number in count_dict:
        count_dict[number] += 1
    else:
        count_dict[number] = 1

# 获取最大出现次数
max_count = max(count_dict.values())
# 筛选所有出现次数等于最大值的键(即众数)
modes = [num for num, count in count_dict.items() if count == max_count]

print(f"众数为:{modes}")

运行后输出:众数为:[3, 4],完全符合你要的多众数场景。

更简洁的实现(用collections.Counter)

Python标准库的collections.Counter可以直接帮你完成次数统计,省去手动遍历的代码:

from collections import Counter

data = [3, 4, 3, 4, 4, 3, 1, 1]
count_dict = Counter(data)
max_count = max(count_dict.values())
modes = [num for num, count in count_dict.items() if count == max_count]

print(f"众数为:{modes}")

这个版本逻辑和之前一致,但代码更简洁高效。

内容的提问来源于stack exchange,提问作者Jovani fernandez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 21:20:43