编写程序实现:输入一个字典内容,包含若干学生的课程成绩,统计每门课程的平均分,并按从高到低的顺序输出课程及其平均分(保留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分
时间: 2023-06-10 10:08:28 浏览: 184
可以参考以下代码实现:
```python
def average_score(score_dict):
# 计算每门课程的总分和学生人数
course_sum = {}
course_count = {}
for student_scores in score_dict.values():
for course, score in student_scores.items():
if course not in course_sum:
course_sum[course] = 0
course_count[course] = 0
course_sum[course] += score
course_count[course] += 1
# 计算每门课程的平均分
course_avg = {}
for course, sum_score in course_sum.items():
course_avg[course] = round(sum_score / course_count[course], 1)
# 按照平均分从高到低排序
sorted_course = sorted(course_avg.items(), key=lambda x: x[1], reverse=True)
# 输出结果
for course, avg_score in sorted_course:
print(f"{course}平均{avg_score}分")
# 测试样例
score_dict = {
'徐丽': {'语文': 88, '数学': 90, '英语': 98, '科学': 95},
'张兴': {'语文': 85, '数学': 92, '英语': 95, '科学': 98},
'刘宁': {'语文': 89, '数学': 89, '英语': 90, '科学': 92},
'张旭': {'语文': 82, '数学': 86, '英语': 89, '科学': 90}
}
average_score(score_dict)
```
输出结果为:
```
科学平均93.8分
英语平均93.0分
数学平均89.2分
语文平均86.0分
```
阅读全文