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

求助:如何从产品描述列表中计算平均容量?Python实现

解决方法

先说说你代码里的几个核心问题:

  • 循环用range(len(product_list))拿到的是索引值,你把变量名写成capacity容易混淆;而且product_list.split("-")是错误用法——split是字符串方法,得用列表里的单个元素调用,不是整个列表。
  • capacity["-":]完全不成立,capacity是数字索引,没法这么用切片,而且你还没把拆分出来的容量字符串转成数字。
  • 循环里直接return average,第一次循环就结束函数了,根本没处理完所有产品。

下面是正确的实现思路和代码:

正确代码

def avg_capacity(product_list):
    total = 0.0
    # 遍历列表里的每个产品描述字符串
    for item in product_list:
        # 按"-"拆分字符串,得到[产品ID, 容量字符串]的列表
        parts = item.split("-")
        # 取出容量部分,转成浮点数后累加到总和
        capacity = float(parts[1])
        total += capacity
    # 总和除以产品数量得到平均值
    return total / len(product_list)

# 测试示例
print(avg_capacity(['A1-10', 'B10-40', 'C403-50', 'D5-10']))  # 输出27.5
print(avg_capacity(['C12-100', 'A10-400']))  # 输出250.0

步骤解释

  1. 初始化total为0.0,确保是浮点数类型,避免整数除法导致的精度问题。
  2. 直接遍历product_list里的每个元素item,比用索引遍历更直观易懂。
  3. 对每个item调用split("-")拆分,比如'A1-10'会被拆成['A1', '10']。
  4. 取拆分后的第二个元素(索引为1),转成浮点数(符合返回值要求的浮点数类型),加到总和total里。
  5. 最后用总和除以产品总数(len(product_list)),得到平均值并返回。

如果想写得更简洁,也可以用生成器表达式一行搞定:

def avg_capacity(product_list):
    return sum(float(item.split("-")[1]) for item in product_list) / len(product_list)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:25:16