python给定n个学生的姓名和成绩,按照成绩从高到低输出。输入格式为多行
时间: 2024-05-09 19:22:08 浏览: 196
,每行包括一个学生的姓名和成绩,以空格分隔。输出格式为多行,每行包括一个学生的姓名和成绩,以空格分隔。如果有多个学生成绩相同,则按照姓名的字典序从小到大输出。
可以使用以下代码实现:
```
n = int(input()) # 输入学生数目
info = [] # 用来保存学生信息
for i in range(n):
name, grade = input().split() # 输入学生姓名和成绩
info.append((name, int(grade))) # 将学生姓名和成绩作为一个元组加入列表
info = sorted(info, key=lambda x: (-x[1], x[0])) # 按照成绩从高到低排序,如果成绩相同按照姓名的字典序从小到大排序
for name, grade in info:
print(name, grade) # 输出排好序的学生姓名和成绩
```
使用ChitGPT可以这样问:
请问如何使用Python给定n个学生的姓名和成绩,按照成绩从高到低输出,如果成绩相同按照姓名的字典序从小到大输出?
相关问题
读入 n 名学生的成绩,将获得某一给定分数的学生人数输出
题目描述
读入 n 名学生的成绩,将获得某一给定分数的学生人数输出。
输入格式
输入格式为两行:第一行有一个整数 n(1≤n≤100),表示学生的数量;第二行有 n 个整数,分别表示这 n 名学生的成绩,中间用空格隔开。
输出格式
输出格式为一个整数,表示获得指定分数的学生人数。
样例输入
5
60 75 90 55 75
75
样例输出
2
算法1
(暴力枚举) $O(n)$
blablabla
时间复杂度
参考文献
Python 代码
算法2
(暴力枚举) $O(n)$
blablabla
时间复杂度
参考文献
C++ 代码
算法3
(暴力枚举) $O(n)$
blablabla
时间复杂度
参考文献
Java 代码
算法4
(暴力枚举) $O(n)$
blablabla
时间复杂度
参考文献
C# 代码
阅读全文