python对成绩单排序,优先按照总分,总分相同再按照单科排序
时间: 2023-07-25 07:29:55 浏览: 147
成绩排序(python)
5星 · 资源好评率100%
好的,这里可以使用Python内置的`sort`方法来实现。具体的思路如下:
1. 定义一个列表,存储每个学生的信息,每个学生的信息是一个元组,包含姓名、语文成绩、数学成绩、英语成绩。
2. 定义一个函数,用来计算每个学生的总分,然后按照总分进行排序,如果总分相同,则按照单科成绩进行排序。
3. 调用`sort`方法进行排序,传入一个`key`参数,用来指定排序的规则。
下面是代码的实现:
```python
def total_score(student):
return sum(student[1:])
students = [
('Tom', 90, 80, 70),
('Jerry', 80, 70, 90),
('Micky', 70, 90, 80),
('Alice', 80, 90, 70),
('Bob', 90, 70, 80)
]
students.sort(key=lambda student: (-total_score(student), -student[1], -student[2], -student[3]))
for student in students:
print(student[0], student[1], student[2], student[3], total_score(student))
```
这里定义了一个`total_score`函数用来计算每个学生的总分,然后使用`lambda`表达式,按照总分、语文成绩、数学成绩、英语成绩的顺序进行排序。最后遍历排序后的列表,输出每个学生的信息。
阅读全文