从键盘输入学生的人数n,并循环输入每名学生的信息:学号(sid)、姓名(name)、成绩(score)(每名学生的信息用字典student表示),将全部学生存入学生列表(stuList)中,并按学生的成绩从高分到低分进行排序并打印出全部学生信息,并打印成绩最高和成绩最低的学生信息,并将最高分和最低分的学生从学生列表中删除,最后再对学生列表进行拷贝,对拷贝的列表(stuListCopy)进行排序输出(按照成绩由低到高的顺序)。
sn = int(input("请输入学生人数:"))
if sn <= 0:
exit(0)
# 循环输入每名学生的信息
stuList = []
for i in range(sn):
sid = input("请输入学号:")
name = input("请输入姓名:")
score = int(input("请输入成绩:"))
student = {'sid': sid, 'name': name, 'score': score}
stuList.append(student)
# 按照成绩从高到低对学生列表进行排序
stuList.sort(key=lambda x: x['score'], reverse=True)
print("全部学生信息:")
for student in stuList:
print(student)
highest = stuList[0]
lowest = stuList[-1]
print("成绩最高的学生信息:", highest)
print("成绩最低的学生信息:", lowest)
# 从学生列表中删除最高分和最低分的学生
stuList.remove(highest)
if lowest in stuList:
stuList.remove(lowest)
# 对学生列表进行拷贝,并按照成绩从低到高排序并输出
if len(stuList) == 0:
print("剩余学生信息列表为空")
else:
stuListCopy = stuList.copy()
stuListCopy.sort(key=lambda x: x['score'])
print("按照成绩由低到高排序后的学生信息:")
for student in stuListCopy:
print(student)