You need to enable JavaScript to run this app. Python求数组最高频数字:max函数平局场景处理咨询
优惠活动
大模型
产品
解决方案
定价
更多

Python求数组最高频数字:max函数平局场景处理咨询

适配频次平局场景的代码调整方案

原代码的核心缺陷可以参考下面的说明:

max(dict1, key=dict1.get)的运行逻辑是遍历字典的所有键,将每个键对应的频次作为比较权重;当存在多个键的频次相等且为全局最高时,max函数只会返回遍历序列中第一个匹配到的键,无法覆盖全部同频次的最高值元素。

调整步骤

  • 先从字典存储的所有频次值中,计算出全局最高的频次数值,不直接绑定具体数组元素
  • 遍历字典的全部键值对,将所有频次等于全局最高值的元素收集为结果列表,即可覆盖平局场景

调整后完整代码

num = [1,2,3,2,1,2,2,4,5,4,4,4] 
dict1 = {}
for val in num:
    if val in dict1:
        dict1[val] = dict1[val] + 1
    else:
        dict1[val] = 1

# 计算全局最高频次
max_freq = max(dict1.values())
# 筛选所有匹配最高频次的元素
result = [item for item, freq in dict1.items() if freq == max_freq]

print(result)

针对给出的测试数组,这段代码的最终输出为[2, 4],符合“平局时返回全部对应数字”的要求。

如果需要简化手动构建频次字典的循环逻辑,也可以直接使用Python标准库collections.Counter实现相同功能,代码更简洁:

from collections import Counter

num = [1,2,3,2,1,2,2,4,5,4,4,4]
freq_dict = Counter(num)
max_freq = max(freq_dict.values())
result = [item for item, freq in freq_dict.items() if freq == max_freq]
print(result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.29 13:45:09