【发布时间】:2020-03-14 11:43:28
【问题描述】:
给定 N 个学生的物理课中每个学生的姓名和成绩,将它们存储在嵌套列表中,并打印任何成绩第二低的学生的姓名.
注意:如果有多个年级相同的学生,请按字母顺序排列他们的姓名并将每个姓名打印在一个新行上。
输入
students = [['Harry', 37.21], ['Berry', 37.21], ['Tina', 37.2], ['Akriti', 41], ['Harsh', 39]]
以下是我针对上述问题的代码:-
marks = sorted([student[i][1] for i in range(len(student))], reverse = True)
for num in range(1,len(marks)):
if marks[num] < marks[0]:
if marks[num+1] < marks[num]:
temp = marks[num+1]
break
else:
continue
second_top = [student[i] for i in range(len(student)) if student[i][1] == temp]
topper = sorted([k for k,l in second_top])
for i in range(len(topper)):
print(topper[i])
输出
Berry
Harry
有没有办法改进这段代码。我是 Python 新手,开始练习 Hacker 等级
【问题讨论】: