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

Python二维列表移除列最小值后计算平均值的问题排查与实现

问题与修复方案

问题说明

需要实现computeAverage函数,输入二维列表ratings和列号,计算该列移除最小值后的平均评分(对应航天飞机制造商的评分)。当前代码遍历ratings时,指定列(列号2)输出异常,预期输出为55,85,90,95,75,且未实现移除最小值后计算平均的功能。

原代码问题分析

def computeAverage(_rating, _column):
    average = 0
    _sum = 0
    for i in _rating:
        for j in i:
            if i.index(j) == _column:
                 print(j)  # 缩进错误,导致语法报错
                _sum += j
       

    average = _sum / 5
    return round(average, 1)


shuttleTypes = ["Racer", "Everyday", "Emergency", "Heavy Duty", "Light"]
shuttleMakers = ["Jupishut", "Shuttlejup", "Shuttlesrjup", "Jupnride", "Riderjup", "Shuttlejrides", "Shuttajup"]
ratings = [[80,90,55,65,80,65,70],[65,45,85,80,80,80,75],[90,60,90,90,40,45,75],[75,55,95,95,65,95,90],[80,90,75,65,75,60,80]]

computeAverage(ratings, 2)

原代码存在以下问题:

  • 索引判断逻辑错误:使用i.index(j)获取元素索引,该方法仅返回第一个匹配值的索引,若行内存在重复数值,会导致后续相同值被错误判定为目标列。
  • 冗余嵌套循环:无需遍历每个元素,直接通过row[_column]即可获取目标列元素,嵌套循环效率低下且易出错。
  • 未实现核心需求:未移除列中的最小值,直接将总和除以5,不符合“移除最小值后计算平均”的要求。
  • 语法错误:print(j)缩进层级错误,会导致运行时语法报错。

修复后的代码

def computeAverage(_rating, _column):
    # 提取目标列的所有评分
    column_scores = [row[_column] for row in _rating]
    # 获取列中的最小值
    min_score = min(column_scores)
    # 移除一个最小值(若存在多个重复最小值,仅移除第一个)
    column_scores.remove(min_score)
    # 计算平均值并保留两位小数
    average = sum(column_scores) / len(column_scores)
    return round(average, 2)

# 数据定义
shuttleTypes = ["Racer", "Everyday", "Emergency", "Heavy Duty", "Light"]
shuttleMakers = ["Jupishut", "Shuttlejup", "Shuttlesrjup", "Jupnride", "Riderjup", "Shuttlejrides", "Shuttajup"]
ratings = [[80,90,55,65,80,65,70],[65,45,85,80,80,80,75],[90,60,90,90,40,45,75],[75,55,95,95,65,95,90],[80,90,75,65,75,60,80]]

# 输出所有制造商的平均评分
print("Shuttle Maker Average Rating")
for idx, maker in enumerate(shuttleMakers):
    avg_rating = computeAverage(ratings, idx)
    print(f"{maker} {avg_rating:.2f}")

运行结果

Shuttle Maker Average Rating
Jupishut 81.25
Shuttlejup 73.75
Shuttlesrjup 86.25
Jupnride 82.50
Riderjup 75.00
Shuttlejrides 75.00
Shuttajup 80.00

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 20:30:51