Мне дают список, который содержит имена и оценки некоторых студентов в форме другого списка.
Например: lis = [['barry', 35], ['larry ', 20], [' cathy ', 10], [' mathew ', 10]]
Мне нужно найти имя / имена ученика со вторым наименьшим баллом. для приведенного выше ввода ответы будут такими: cathey Mathew
Я попытался решить эту проблему следующим образом. Но выхода нет. Может ли кто-нибудь определить ошибку в моем коде?
x=int(input()) #total number of element
lis=[] #list
pis=[]
for _ in range(x) :
name = input()
score = float(input())
lis.append([name,score]) #appending name and score to lis
pis.append([score]) #appending only scores to pis
pis.sort() #sorting pis
lis.sort() #sorting lis
x=pis[1] #finding the 2nd smallest score in pis
for i in lis:
if ((i[1])) == x: #comparing the second smallest number to every score in lis
print (i[0]) #printing only the name if the scores are same,(this step don't work)