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

Python实训题:实现生产线产品产量平均值计算函数的疑问

解决生产线产量平均值计算问题

嘿,我来帮你理清这个困惑!其实你不用纠结时间周期的问题——咱们先从给定的输入输出反推一下计算逻辑,就能明白啦:

看示例里的计算:

  • line1的产量数据是[5,6,5,1],总和17,除以4条记录得到4.25,和输出完全匹配
  • line3的产量数据是[4,-1,12,16],总和31,除以4条记录得到7.75,也和输出一致

这说明输入里的第二个参数(那个全是0的字段)要么是占位符,要么所有记录都属于同一个统计周期,不需要计算时间间隔。我们只需要按生产线分组,收集所有对应的产量值,然后直接计算平均值就行。

下面是实现这个逻辑的Python函数:

def calculate_line_average(input_data):
    # 用字典存储每条生产线的所有产量数据
    line_records = {}
    for line_name, _, production in input_data:
        # 如果生产线还没在字典里,初始化一个空列表
        if line_name not in line_records:
            line_records[line_name] = []
        # 添加当前产量值到对应生产线的列表
        line_records[line_name].append(production)
    
    # 计算每条生产线的平均值,返回结果字典
    return {
        line: sum(records) / len(records)
        for line, records in line_records.items()
    }

# 测试示例输入
input_example = [
    ('line1', 0, 5), ('line1', 0, 6), ('line2', 0, 3),
    ('line1', 0, 5), ('line3', 0, 4), ('line2', 0, 9),
    ('line3', 0, -1), ('line2', 0, 9), ('line2', 0, 10),
    ('line3', 0, 12), ('line1', 0, 1), ('line3', 0, 16)
]
print(calculate_line_average(input_example))
# 输出:{'line1': 4.25, 'line2': 7.75, 'line3': 7.75}

代码说明:

  1. 我们用line_records字典来分组存储每条生产线的所有产量数据,键是生产线名称,值是对应产量的列表
  2. 遍历输入数据时,直接忽略第二个字段(因为它不影响计算),把产量值添加到对应生产线的列表里
  3. 最后用字典推导式,对每条生产线的产量列表计算总和除以数量,得到平均值

如果之后题目要求过滤无效值(比如负数产量),只需要在添加数据的时候加个判断,比如if production >= 0再添加就行,但根据示例,这里不需要过滤负数哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:01:07