Python不使用numpy和zip、用for循环实现列表矩阵列求和及平均值计算
完整实现代码
data = [[1, 3, 5, 7], [2, 4, 6, 8], [9, 11, 13, 15], [10, 12, 14, 16]] def calc_avg(data, column): # 前置合法性校验,避免索引越界或空数据集报错 if not data or column < 0 or column >= len(data[0]): raise ValueError("数据集为空或输入的列号超出范围") total = 0 for row in data: total += row[column] # 平均值=列总和/数据行数 avg = total / len(data) return avg
调用示例
列索引从0开始计数,比如你举例的1+2+9+10对应第0列,3+4+11+12对应第1列:
# 计算第0列平均值,输出5.5 print(calc_avg(data, 0)) # 计算第1列平均值,输出7.5 print(calc_avg(data, 1))
说明
- 完全遵循约束要求:仅用原生Python for循环实现,未使用numpy、zip等工具
- 原有代码的两处问题已修正:求和时取每行对应索引的元素
row[column],求平均的分母改为数据行数len(data)而非函数名 - 新增了简单的边界校验,避免非法输入导致运行错误
内容的提问来源于stack exchange,提问作者Ori B.
相关产品推荐
相关产品推荐

