python - 我如何计算每列和每行的平均值并沿 10*3 数组打印
问题描述
我希望它将平均值打印为另一列和行我在尝试运行它时也不断收到此错误
文件“desktop/exercise10.py”,第 25 行,在 a[i][n+1] = total / m IndexError: list assignment index out of range
import stdio
a = [[99.0,85.0,98.0],
[98.0,57.0,79.0],
[92.0,77.0,74.0],
[94.0,62.0,81.0],
[99.0,94.0,92.0],
[80.0,76.5,67.0],
[76.0,58.5,90.5],
[92.0,66.0,91.0],
[97.0,70.5,66.5],
[89.0,89.5,81.0]]
m = 10
n = 3
for i in range(m):
for j in range(n):
stdio.write(a[i][j])
stdio.write(' ')
stdio.writeln()
for i in range(m):
total = 0.0
for j in range(n):
total += a[i][j]
a[i][n] = total / m
for j in range(n):
total = 0.0
for i in range(m):
total += a[i][j]
a[m+1][j] = total / n
解决方案
您可以使用 append 在列表末尾插入一个元素。检查下面的代码:
a = [[99.0,85.0,98.0],
[98.0,57.0,79.0],
[92.0,77.0,74.0],
[94.0,62.0,81.0],
[99.0,94.0,92.0],
[80.0,76.5,67.0],
[76.0,58.5,90.5],
[92.0,66.0,91.0],
[97.0,70.5,66.5],
[89.0,89.5,81.0]]
for i in range(len(a)):
a[i].append(sum(a[i])/len(a[i]))
list_avg_column = []
for j in range(len(a[0])):
avg_column = 0
for i in range(len(a)):
avg_column += a[i][j]
list_avg_column.append(avg_column/len(a))
a.append(list_avg_column)
# print information
import stdio
for i in range(len(a)):
for j in range(len(a[0])):
stdio.write(a[i][j])
stdio.write(' ')
stdio.writeln()
推荐阅读
- python - 如何使用循环在 tkinter 中显示多个图像?
- typegraphql - 订阅 onConnect 返回值未附加到上下文
- blazor - 在 Blazor 中插入数据
- firebase - 观察成本()
- angular - 开发时使用angular和docker
- batch-file - 使用批处理脚本,我们如何在不解压缩的情况下找到压缩/压缩文件的行数?
- swift - 斯威夫特: AVAssetReader.status 是 AVAssetReaderStatus
- linux - 看电影时如何防止swayidle执行
- c# - 如何将文件从 URL 下载到服务器文件夹
- java - java泛型中类型擦除的逻辑是什么?