问题描述】 给出班里某门课程的成绩文件test5.csv(utf-8编码),每行为每个学生的名字和他的成绩, 中间用逗号隔开。请你按成绩从高到低对数据排序输出,如果有相同分数则名字字典序小的在前(按名字升序)排序。 【输入形式】 输入来自文件 【输出形式】 把成绩按分数从高到低的顺序进行排序并输出,每行包含名字和分数两项,之间有一个空格。 【样例输入】 文件内容如下时: Kitty,80 Tom,28 Hanmeimei,90 Joey,92 Tim,28 【样例输出】 Joe
时间: 2023-12-14 09:36:17 浏览: 163
实验8学生成绩分析程序
4星 · 用户满意度95%
```python
import csv
with open('test5.csv', 'r', encoding='utf-8') as file:
reader = csv.reader(file)
scores = []
for row in reader:
scores.append((row[0], int(row[1])))
scores.sort(key=lambda x: (-x[1], x[0]))
for score in scores:
print(score[0], score[1])
```
解释:
1. 使用 `csv` 模块读取文件,将每行数据存储为元组 `(name, score)` 的形式,其中分数转换为整型。
2. 使用 `sort()` 方法按照分数从高到低排序,如果分数相同则按照名字升序排序。
3. 遍历排好序的分数列表,输出每个学生的名字和成绩。
阅读全文