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

Python3.9.5无statistics.multimode属性 求众数列表获取替代方案

问题原因

statistics.multimode 是Python 3.10版本才新增的标准库接口,3.9及更早版本的标准库中没有该方法,因此会抛出AttributeError报错。

替代解决方案

优先推荐无第三方依赖的实现方案,仅需使用Python标准库自带的collections.Counter即可实现完全一致的multimode效果,返回结果的顺序、逻辑和Python 3.10+官方的statistics.multimode完全对齐,无需修改其他业务逻辑:

步骤1:自定义multimode函数

from collections import Counter

def multimode(data):
    # 处理空输入的边界情况
    if not data:
        return []
    # 统计所有元素的出现频率
    counter = Counter(data)
    # 提取最高出现频率
    max_frequency = max(counter.values())
    # 返回所有频率等于最高频率的元素列表
    return [item for item, freq in counter.items() if freq == max_frequency]

步骤2:替换原有业务代码

将原来调用statistics.multimode的代码替换为调用上述自定义函数即可,同时优化了原代码重复计算的问题:

# 移除原有的import statistics行,替换为以下导入和函数定义
from collections import Counter

def multimode(data):
    if not data:
        return []
    counter = Counter(data)
    max_frequency = max(counter.values())
    return [item for item, freq in counter.items() if freq == max_frequency]

# ... 其他原有业务代码
values = multimode(vars)
valuesCount = len(values)
# ... 其他原有业务代码
可选优化建议
  • 建议将变量名vars修改为其他自定义名称,避免覆盖Python内置的vars()函数,引发意料之外的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:06:04