题目:
将学生对象存入列表中,并按成绩对学生进行排序,并获取成绩最高和成绩最低的学生信息,并将最高分和最低分的学生从列表删除,最后再对列表进行拷贝,对拷贝的列表进行翻转输出。
代码:
#创建一个学生类
class Student:
def __init__(self,name,sno,score):
self.name=name
self.sno=sno
self.score=score
#创建四个学生对象
stu1=Student('张三','192501',100)
stu2=Student('李四','192502',99)
stu3=Student('王五','192503',88)
stu4=Student('赵六','192504',98)
#将各个学生对象存入列表
Slist=[stu1,stu2,stu3,stu4]
#对学生对象列表遍历输出
print('排序之前:')
for i in Slist:
print(f'{i.sno} {i.name} {i.score}')
#按成绩对学生进行排序
print("排序之后:")
#浅拷贝sort的key使用lambda表达式获取学生成绩
Slist.sort(key=lambda stu:stu.score)
for i in Slist:
print(f'{i.sno} {i.name} {i.score}')
#获取最高分和最低分
print(f'最高分: \n {Slist[3].score} {Slist[3].name} {Slist[3].sno}')
print(f'最低分: \n {Slist[0].score} {Slist[0].name} {Slist[0].sno}')
#从列表中删除最高分和最低分的学生
Slist=Slist[1:len(Slist)-1]
for i in Slist:
print(f'{i.sno} {i.name} {i.score}')
#对列表进行拷贝,翻转之后输出
print("拷贝后的学生列表")
Rlist=Slist.copy()
for i in Rlist:
print(f'{i.sno} {i.name} {i.score}')
实验结果:
如有错误,请指正,谢谢!