编写程序实现:输入一个字典内容,包含若干学生的课程成绩,统计每门课程的平均分,并按从高到低的顺序输出课程及其平均分(保留1位小数)。
时间: 2023-06-11 19:08:03 浏览: 416
下面是实现该功能的 Python 代码:
```python
scores = {
'Alice': {'Math': 80, 'English': 90, 'History': 85},
'Bob': {'Math': 75, 'English': 85, 'History': 80},
'Charlie': {'Math': 90, 'English': 80, 'History': 95}
}
# 统计每门课程的总分和人数
sums = {}
counts = {}
for name, subjects in scores.items():
for subject, score in subjects.items():
if subject not in sums:
sums[subject] = 0
counts[subject] = 0
sums[subject] += score
counts[subject] += 1
# 计算每门课程的平均分
averages = {}
for subject in sums:
averages[subject] = round(sums[subject] / counts[subject], 1)
# 按平均分从高到低排序并输出
sorted_averages = sorted(averages.items(), key=lambda x: x[1], reverse=True)
for subject, average in sorted_averages:
print(f'{subject}: {average}')
```
以上代码中,我们先定义了一个名为 `scores` 的字典,其中包含了若干个学生的课程成绩。然后我们使用两个字典 `sums` 和 `counts` 分别记录每门课程的总分和人数,用于计算平均分。最后我们使用 `sorted` 函数和一个匿名函数对平均分从高到低排序,并输出课程及其平均分。
阅读全文