给出物理课上每个学生的名字和成绩,将它们存储在一个嵌套列表中,并打印出任何成绩最低的学生的名字。注意:如果同一年级有多个学生,请按字母顺序排列他们的名字,并在新的一行上打印每个名字。
输入:
5
Harry
37.21
Berry
37.21
Tina
37.2
Akriti
41
Harsh
39
输出:
>>Berry
>>Harry
我做到了
if __name__ == '__main__':
l2=[]
l1=[]
for i in range(int(input())):
name = input()
l1.append(name)
score = float(input())
l1.append(score)
l2.append(l1)
print(l2)
但它输出:
>>[['Harry', 37.21], ['Berry', 37.21], ['Tina', 37.2], ['Akriti', 41], ['Harsh', 39]]
一个旧问题,但添加一个答案以便获得帮助
这确实是来自hackerrank的一个面试问题。
下面是我对这个问题的简单解决方案-我只需遍历嵌套的成绩列表。在每次迭代中,将新的得分与
lowest
得分和第二低得分(slowest
)进行比较,同时保持一个names
列表,其中得分等于第二低得分。注:
names
总是与slowest
分数相关,如果slowest
改变,我们也改变names
。如果新分数等于slowest
分数,则添加新名称。评论将帮助你进一步。。。我不知道这是否是一个更好的解决方案,但它通过了所有的测试用例。
要回答您的问题,可以将输入作为
我相信这是一个黑客等级的问题 这是解决办法
相关问题 更多 >
编程相关推荐