描述
输入用空格分隔的两个正整数n和m,表示后面要接收m个人的n门课的成绩的输入。随后的m行,每行输入用空格分隔的n个成绩。题目保证m和n都在(0-100]之间。请分行输出每门课的平均成绩。
输入
第一行输入用空格分隔的两个正整数n和m
随后的m行,每行输入用空格分隔的n个成绩。
输出
分行输出每门课的平均成绩
输入用空格分隔的两个正整数n和m
n,m = map(int, input().split()) # 同一行中输入 m,n 并映射为整数
随后的m行,每行输入用空格分隔的n个成绩。
sheet = [] # 创建一个空列表
for i in range(m):
sheet.append(list(map(float, input().split()))) # 将每行的输入根据空格切分为列表,并映射为浮点数,转为列表加入到sheet中
先输入测试数据,查看列表中的数据和格式:
n,m = map(int, input().split())
sheet = []
for i in range(m):
sheet.append(list(map(float, input().split())))
print(sheet)
输入:
5 3
89 90 78 93 80
90 91 85 88 86
91 92 83 89 90.5
输出
[[89.0, 90.0, 78.0, 93.0, 80.0],
[90.0, 91.0, 85.0, 88.0, 86.0],
[91.0, 92.0, 83.0, 89.0, 90.5]]
分行输出每门课的平均成绩,即取出列表各元素中相同序号的子元素求和再除课程门数。课程门数为m,也可以用len(sheet)获取。
for i in range(n): # 遍历 n 门课程
score = [] # 创建空列表
for x in sheet: # 遍历每个人的成绩单
score.append(x[i]) # 取得每个人第 i 门课程的成绩,将所有人第 i 门课程成绩放入一个列表中进行统计
print(sum(score)/m) # 计算课程平均成绩
上面的代码可以用列表推导式实现:
for i in range(n): # 遍历 n 门课程
print(sum([x[i] for x in sheet])/len(sheet))
# 将所有人第 i 门课程成绩放入一个列表中,同时用sum计算其和,再除以成绩个数
完整参考程序如下:
n,m = map(int, input().split())
sheet = []
for i in range(m):
sheet.append(list(map(float, input().split())))
for i in range(n):
score = []
for x in sheet:
score.append(x[i])
print(sum(score)/m)
或
n,m = map(int, input().split())
sheet = []
for i in range(m):
sheet.append(list(map(float, input().split())))
for i in range(n):
print(sum([x[i] for x in sheet])/len(sheet))