从键盘输入学生的人数n,并循环输入每名学生的信息:学号(sid)、姓名(name)、成绩(score)(每名学生的信息用字典student表示),将全部学生存入学生列表(stuList)中,并按学生的成绩从高分到低分进行排序并打印出全部学生信息,并打印成绩最高和成绩最低的学生信息,并将最高分和最低分的学生从学生列表中删除,最后再对学生列表进行拷贝,对拷贝的列表(stuListCopy)进行排序输出(按照成绩由低到高的顺序)。
2条回答
创意程序员 2023-04-18 13:00关注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)解决 无用评论 打赏 举报