可以选择对序号,课程名称,成绩进行排序
时间: 2024-02-02 13:43:42 浏览: 132
好的,可以为您提供一个排序函数。您需要提供一个包含多个元组的列表,每个元组包含三个元素,分别是序号、课程名称和成绩。以下是示例代码:
```
def sort_grades(lst, sort_by):
"""
:param lst: a list of tuples, each tuple contains three elements: the index, course name, and grade
:param sort_by: a string indicating the field to sort by, should be one of "index", "course", or "grade"
:return: a sorted list of tuples based on the specified field
"""
if sort_by == "index":
return sorted(lst, key=lambda x: x[0])
elif sort_by == "course":
return sorted(lst, key=lambda x: x[1])
elif sort_by == "grade":
return sorted(lst, key=lambda x: x[2])
else:
raise ValueError("Invalid sort_by parameter")
```
您可以将您的学生成绩列表传递给此函数,以及指定要按哪个字段进行排序。例如,要按成绩降序排序,您可以这样调用函数:
```
grades = [(1, "Math", 80), (2, "English", 90), (3, "Science", 75)]
sorted_grades = sort_grades(grades, "grade")[::-1]
```
这将返回一个按成绩降序排序的新列表。请注意,我们使用了 `[::-1]` 以确保列表是降序的。
阅读全文