成绩排序:给出一些学生的姓名和成绩,将学生按成绩从高到低排序。成绩相同的学生,按照姓名从小到大排序。(列表)
时间: 2023-12-17 08:04:26 浏览: 16
输入格式:
第一行包含一个整数N(N<=1000),表示学生的个数。
接下来的N行,每行包含一个字符串和一个整数,中间用一个空格隔开,表示每个学生的姓名和成绩。
输出格式:
按照要求排序后输出每个学生的姓名和成绩,每行一个。
输入样例:
3
Tom 75
Jerry 85
Lily 75
输出样例:
Jerry 85
Lily 75
Tom 75
相关问题
用python写程序:成绩排序:给出一些学生的姓名和成绩,将学生按成绩从高到低排序。成绩相同的学生,按照姓名从小到大排序。(列表)
以下是用 Python 编写的程序,可以实现按照成绩从高到低排序,成绩相同的学生按照姓名从小到大排序:
```python
students = [("Alice", 85), ("Bob", 90), ("Charlie", 80), ("David", 90), ("Eve", 85)]
sorted_students = sorted(students, key=lambda x: (-x[1], x[0]))
for student in sorted_students:
print(student[0], student[1])
```
输出结果为:
```
Bob 90
David 90
Alice 85
Eve 85
Charlie 80
```
其中,`students` 是一个包含学生姓名和成绩的列表,`sorted` 函数使用了一个 lambda 函数作为排序的关键字,`-x[1]` 表示按照成绩从高到低排序,`x[0]` 表示按照姓名从小到大排序。最后,使用一个 for 循环遍历排序后的学生列表,并输出每个学生的姓名和成绩。
python给出一些学生的姓名和成绩,将学生按成绩从高到低排序。成绩相同的学生,按照姓名从小到大排序
好的,这个问题可以通过 Python 的列表和排序函数来实现。下面是代码示例:
```python
students = [("Tom", 90), ("Alice", 80), ("Bob", 90), ("Charlie", 75)]
# 按照成绩从高到低排序,如果成绩相同按照姓名从小到大排序
students_sorted = sorted(students, key=lambda x: (-x[1], x[0]))
print(students_sorted)
```
输出结果为:
```
[('Bob', 90), ('Tom', 90), ('Alice', 80), ('Charlie', 75)]
```
代码中,我们定义了一个学生列表 `students`,其中每个元素是一个元组,包含学生的姓名和成绩。然后使用 `sorted()` 函数对列表进行排序,通过 `key` 参数指定排序规则。`key` 参数接受一个函数作为输入,这个函数用于将每个元素转换为排序关键字。在本例中,我们使用 lambda 表达式定义了一个函数,它返回一个包含两个值的元组,第一个值是成绩的负数(这是因为 Python 的排序函数默认按照升序排列,我们需要将成绩的负数作为排序关键字来实现降序排列),第二个值是姓名。最后,将排序后的结果保存在 `students_sorted` 变量中,并输出结果。