如何在Python代码中计算并显示最大均值?
修改后的代码实现
要实现同时输出每组均值和所有均值的最大值,我们需要先把每组的均值和对应名字存储起来,遍历完所有数据后再找出最大值。修改后的代码如下:
import csv from statistics import mean # 存储每个名字与对应均值的列表 average_records = [] with open("numbers.csv") as f: reader = csv.reader(f) for row in reader: name = row[0] # 用列表推导式简化成绩转换代码 these_grades = [int(grade) for grade in row[1:]] avg = mean(these_grades) print("average of %s is %f" % (name, avg)) # 将当前记录存入列表 average_records.append((name, avg)) # 找出均值最大的记录,以元组第二个元素(均值)为判断依据 max_avg_record = max(average_records, key=lambda x: x[1]) print("\n最高均值是:%s 的 %f" % (max_avg_record[0], max_avg_record[1]))
改动说明
- 新增
average_records列表,用来保存所有学生的名字和对应均值,为后续找最大值提供数据基础。 - 将原循环生成成绩列表的代码简化为列表推导式,减少冗余代码,提升可读性。
- 遍历过程中保留原有的单组均值打印逻辑,同时把记录存入列表。
- 循环结束后,用
max()函数结合lambda表达式,快速定位均值最大的记录并打印。
运行结果
执行代码后会先输出每个学生的均值,再输出所有均值中的最大值:
average of arad is 19.000000 average of sara is 17.000000 average of mahdi is 14.000000 average of saber is 14.250000 average of adel is 16.500000 最高均值是:arad 的 19.000000
内容的提问来源于stack exchange,提问作者Hasan Hooman
相关产品推荐
相关产品推荐

