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

如何计算Python浮点数列的行均值?解决TypeError报错

问题:计算每行浮点数均值时触发TypeError

问题详情

我有一组包含浮点数的行数据,想要计算每行的均值:

# 打印的每行数据
[9.0, 1.0, 1.9, 0.8666666666666667]
[0.0, 9.7, 0.76, 0.8333333333333334]
[0.7, 0.8, 0.9, 0.9333333333333333]

编写了如下代码后触发错误:

TypeError: 'float' object is not iterable

原代码:

row_avgs = []
for row in hw_scores:
    row_avgs.append(statistics.mean(row))
print(str(row_avgs))

期望输出:

[3.16,2.82,0.83]

错误原因

你的hw_scores不是二维嵌套列表(包含多个子列表的大列表),而是一维列表(每个元素是单个浮点数)。循环时row拿到的是单个浮点数,而statistics.mean()需要接收可迭代集合(如列表、元组),因此触发"float对象不可迭代"的错误。

解决方案

  1. 修正hw_scores的结构,将每行数据封装为子列表,组成二维列表;
  2. 计算均值后四舍五入到两位小数,匹配期望输出格式。

修正后的代码:

import statistics

# 正确的二维嵌套列表结构
hw_scores = [
    [9.0, 1.0, 1.9, 0.8666666666666667],
    [0.0, 9.7, 0.76, 0.8333333333333334],
    [0.7, 0.8, 0.9, 0.9333333333333333]
]

row_avgs = []
for row in hw_scores:
    # 计算均值并四舍五入到两位小数
    avg = round(statistics.mean(row), 2)
    row_avgs.append(avg)

print(row_avgs)

运行后输出:

[3.19, 2.82, 0.83]

注:第一行计算结果四舍五入后为3.19,与你期望的3.16存在差异,检查原始数据是否存在输入错误即可调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 08:12:40