在当前目录中有学生信息文件student.txt,文件内容如下:20240101,Jong,98.210103,tom,100.240101,Jenny,78.写python程序实现从文件中读入数据,并按成绩排序(升序,降序),排序后输出学生信息
时间: 2023-11-17 11:07:09 浏览: 85
好的,我可以为你编写这样的 Python 程序。你可以参考以下代码:
```python
# 读取数据
with open("student.txt", "r") as f:
data = f.readlines()
students = []
for line in data:
info = line.strip().split(",")
student = {
"id": info[0],
"name": info[1],
"score": float(info[2])
}
students.append(student)
# 按成绩排序(升序)
students_sorted_by_score_ascending = sorted(students, key=lambda x: x["score"])
# 输出学生信息
print("按成绩排序(升序):")
for student in students_sorted_by_score_ascending:
print(f"学号:{student['id']},姓名:{student['name']},成绩:{student['score']:.2f}")
# 按成绩排序(降序)
students_sorted_by_score_descending = sorted(students, key=lambda x: x["score"], reverse=True)
# 输出学生信息
print("按成绩排序(降序):")
for student in students_sorted_by_score_descending:
print(f"学号:{student['id']},姓名:{student['name']},成绩:{student['score']:.2f}")
```
在该程序中,首先我们打开并读取了名为 `student.txt` 的文件,将其按行读取并存储在 `data` 变量中。然后,我们遍历 `data` 变量中的每一行数据,并使用 `strip()` 和 `split()` 方法将其转换为一个字典类型的学生信息,并将所有学生信息存储在 `students` 列表中。
接下来,我们使用 `sorted()` 函数对 `students` 列表进行排序,通过 `key` 参数指定按照学生成绩进行排序,并通过 `reverse` 参数指定排序方式为降序或升序。
最后,我们遍历排序后的列表,按照指定格式输出每个学生的信息。