7-1 lambda表达式的使用 分数 10 作者 聂作先 单位 福建工程学院 输入若干学生数据,包括姓名,以及ds,db,c 三门课程的成绩,存放到序列中,然后按总成绩由高到低输出所有学生的信息,使用内置函数sorted及lambda表达式实现。 输入格式: 先输入学生数量n,再输入n行学生数据,每行一个学生的信息,包括:姓名,以及ds,db,c 三门课程的成绩。 输出格式: 按总成绩由高到低排序后的学生信息。 输入样例: 在这里给出一组输入。例如: 2 张三 70 75 80 李四 80 80
时间: 2024-04-07 20:31:54 浏览: 189
10.第十节-使用lambda表达式实现排序.mp4
下面是使用 lambda 表达式实现学生成绩排序的 Python 代码:
```python
n = int(input())
# 输入学生信息并计算总成绩
students = []
for i in range(n):
info = input().split()
name, scores = info[0], list(map(int, info[1:]))
total = sum(scores)
students.append((name, scores, total))
# 按总成绩排序并输出
students = sorted(students, key=lambda x: x[2], reverse=True)
for name, scores, total in students:
print("{} {} {} {} {}".format(name, scores[0], scores[1], scores[2], total))
```
输入格式要求先输入学生数量 n,然后输入 n 行学生数据。每行数据包括姓名、三门课程的成绩。使用 `input().split()` 将每行数据按空格分割成若干子串,再使用 `map(int, ...)` 将成绩字符串转换为整数。之后计算学生的总成绩,并将学生信息以元组的形式添加到列表 `students` 中。
在排序时,使用 lambda 表达式 `key=lambda x: x[2]` 表示按元组中的第三个元素(即总成绩)进行排序,同时使用 `reverse=True` 表示按降序排列。
最后,使用 `for` 循环输出排序后的学生信息。
阅读全文