Python:1004 成绩排名

一、题目

读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。

输入格式:
每个测试输入包含 1 个测试用例,格式为

第 1 行:正整数 n
第 2 行:第 1 个学生的姓名 学号 成绩
第 3 行:第 2 个学生的姓名 学号 成绩
… … …
第 n+1 行:第 n 个学生的姓名 学号 成绩
其中姓名和学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。

输出格式:
对每个测试用例输出 2 行,第 1 行是成绩最高学生的姓名和学号,第 2 行是成绩最低学生的姓名和学号,字符串间有 1 空格。
在这里插入图片描述

二、代码

思想
这个题常规是 C 语言的结构体可以解决,Python的话,我第一反应是建立一个 Student 类,想了想没那么复杂,只需要两个列表 max 和 min 用来记录比较即可。
需要注意的是
max列表中的成绩可以设为负,保证初始最小
min 列表中的成绩可以设为110 ,保证初始最大
新学的一个方法,将输入总的字符串(以空格或其他字符分割)中的单个字符串提取出来 使用的是 split 方法

n = int(input())
max = [0,0,-1]
min = [0,0,110]
for i in range(n):
    temp = input()
    temp = temp.split()
    if int(temp[2]) > int(max[2]):
        max = temp
    if int(temp[2]) < int(min[2]):
        min = temp

print("%s %s" % (max[0],max[1]))
print("%s %s" % (min[0],min[1]))
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python 中,可以使用 `sorted()` 函数对列表进行排序。如果要按照列表中元素的大小进行排序,可以直接调用 `sorted()` 函数;如果要按照列表中元素的某个属性进行排序,则需要使用 `key` 参数指定排序的依据。 下面是一个示例代码,演示了如何对一个列表按照元素大小进行排序: ```python mylist = [3, 5, 1, 2, 4] sorted_list = sorted(mylist) print(sorted_list) ``` 输出结果: ``` [1, 2, 3, 4, 5] ``` 如果要按照元素的某个属性进行排序,例如对一个学生列表按照成绩进行排序,可以使用 `key` 参数指定排序的依据。下面是一个示例代码: ```python class Student: def __init__(self, name, score): self.name = name self.score = score students = [ Student('Tom', 80), Student('Jerry', 90), Student('Alice', 85), ] sorted_students = sorted(students, key=lambda x: x.score, reverse=True) for student in sorted_students: print(student.name, student.score) ``` 输出结果: ``` Jerry 90 Alice 85 Tom 80 ``` 在这个例子中,我们定义了一个 `Student` 类表示学生,每个学生姓名成绩两个属性。我们创建了一个学生列表 `students`,然后调用 `sorted()` 函数对其进行排序,按照学生成绩从高到低排序。在 `sorted()` 函数中,我们使用了 `key` 参数指定排序的依据,即按照学生成绩进行排序。由于我们希望按照成绩从高到低排序,因此设置了 `reverse=True`。最后,我们遍历排序后的学生列表,并输出每个学生姓名成绩
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南淮北安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值