编写程序实现:输入一个字典内容,包含若干学生的课程成绩,统计每门课程的平均分,并按从高到低的顺序输出课程及其平均分(保留1位小数)。
输入样例:
输入一个字典内容,例如:
{'徐丽': {'语文': 88, '数学': 90, '英语': 98, '科学': 95},'张兴': {'语文': 85, '数学': 92, '英语': 95, '科学': 98},'刘宁': {'语文': 89, '数学': 89, '英语': 90, '科学': 92},'张旭': {'语文': 82, '数学': 86, '英语': 89, '科学': 90}}
输出样例:
按从高到低的顺序输出课程及其平均分(保留1位小数):
科学平均93.8分
英语平均93.0分
数学平均89.2分
语文平均86.0分
实际测试数据的学生数量、课程名称、课程数量和样例不同。
scores = {'徐丽': {'语文': 88, '数学': 90, '英语': 98, '科学': 95},
'张兴': {'语文': 85, '数学': 92, '英语': 95, '科学': 98},
'刘宁': {'语文': 89, '数学': 89, '英语': 90, '科学': 92},
'张旭': {'语文': 82, '数学': 86, '英语': 89, '科学': 90}}
# 计算每门课程的总分和学生人数
course_total = {}
course_count = {}
for name, course_scores in scores.items():
for course, score in course_scores.items():
course_total[course] = course_total.get(course, 0) + score
course_count[course] = course_count.get(course, 0) + 1
# 计算每门课程的平均分
course_avg = {}
for course, total in course_total.items():
course_avg[course] = round(total / course_count[course], 1)
# 按平均分从高到低排序并输出结果
for course, avg in sorted(course_avg.items(), key=lambda x: -x[1]):
print(f'{course}平均{avg}分')