Nested Lists in Python - Hacker Rank Solution

Problem Statement :

Given the names and grades for each student in a class of N students, store them in a nested list and print the name(s) of any student(s) having the second lowest grade.



Note: If there are multiple students with the second lowest grade, order their names alphabetically and print each name on a new line.

Example:

     records=[["chi",20.0], ["beta", 50.0], ["alpha",50.0]]


The ordered list of scores is [20.0,50.0] , so the second lowest score is 50.0. There are two students with that score: ["alpha", "beta"]. Ordered alphabetically, the names are printed as:  

         alpha

         beta


Input Format:

         The first line contains an integer, N , the number of students.

         The  subsequent 2N lines describe each student over 2 lines.

                      - The first line contains a student's name.

                      - The second line contains their grade.


Constraints:

          2<=N<=5


There will always be one or more students having the second lowest grade.


Output Format:

           Print the name(s) of any student(s) having the second lowest grade in.


Code:

if __name__ == '__main__':

    lis=[]

    for _ in range(int(input())):

        name = input()

        score = float(input())

        

        lis.append([name,score])

    

    lis.sort(key=lambda lis:lis[1])

    second_lowest=[]

    for i in range(len(lis)):

        if lis[i][1]!=lis[0][1]:

            second_lowest.append(lis[i][0])

            for j in range(i+1,len(lis)):

                if lis[j][1]==lis[i][1]:

                    second_lowest.append(lis[j][0])

                else:

                    break

            break        

        

        else:

            continue

    second_lowest.sort()

    for i in second_lowest:

        print(i)


Ignore:

Hacker Rank Solution

Hacker Rank Python solution

Hacker Rank Java

Hacker Rank C++

No comments:

Powered by Blogger.