if you want to remove an article from website contact us from top.

# there are nn students in the class with distinct names. you are given a list of students and their scores. your task is to find the students with maximum score and print his/her name. if there is tie, print all the names in ascending alphabetical order.

Category :

### Mohammed

Guys, does anyone know the answer?

get there are nn students in the class with distinct names. you are given a list of students and their scores. your task is to find the students with maximum score and print his/her name. if there is tie, print all the names in ascending alphabetical order. from screen.

## Hackerrank/Nested_Lists.py at master · anarayanan86/Hackerrank · GitHub

Solutions to the practice exercises, coding challenges, and other problems on Hackerrank! www.Hackerrank.com - Hackerrank/Nested_Lists.py at master · anarayanan86/Hackerrank Skip to content Sign up anarayanan86 /

Hackerrank

Public master

anarayanan86 Update Nested_Lists.py

1 contributor

37 lines (29 sloc) 1.29 KB

# Nested Lists

# Given the names and grades for each student in a Physics class of 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 same grade, order their names alphabetically and print each name on a new line.

# Input Format

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

# The 2N subsequent lines describe each student over 2 lines; the first line contains a student's name, and 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 Physics; if there are multiple students, order their names

# alphabetically and print each one on a new line.

# Enter your code here. Read input from STDIN. Print output to STDOUT

N = int(raw_input())

students = []

for i in range(2*N):

students.append(raw_input().split())

for j in range(0, len(students), 2):

grades[students[j]] = float(students[j + 1])

result = []

for pupil in grades.keys():

if grades[pupil] == num_to_match:

result.append(pupil)

for k in sorted(result):

print k

स्रोत : github.com

## HackerRanak : Nested Lists. Given the names and grades for each…

Given the names and grades for each student in a class of Nstudents, 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… ## HackerRanak : Nested Lists G

iven the names and grades for each student in a class of Nstudents, 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.Input Format:

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

The 2Nsubsequent lines describe each student over 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. If there are multiple students, order their names alphabetically and print each one on a new line.

Sample Input 0

5 Harry 37.21 Berry 37.21 Tina 37.2 Akriti 41 Harsh 39

Sample Output 0

Berry Harry

Explanation 0

There are students in this class whose names and grades are assembled to build the following list:

python students = [['Harry', 37.21], ['Berry', 37.21], ['Tina', 37.2], ['Akriti', 41], ['Harsh', 39]]

The lowest grade of 37.21 belongs to Tina. The second lowest grade of 37.21 belongs to both Harry and Berry, so we order their names alphabetically and print each name on a new line.

Solution:

'''

Can be solved in 2 parts:

1st part:

1.Take name and score as input

2.Store name and score in nested list `students_grade`

3.Make a Unique_sorted_score_list that is unique(using set()) and sorted(using sorted()) scores

4.Fetch second_lowest_score from Unique_sorted_score_list

2nd part:

1.create an empty list => low_student_list

2.for every student in `students_grade`

3.check if second_lowest_score match any student[score]

4.if Yes: append in student_list

5.iterate through `low_student_list` to print result

'''

Code: स्रोत : medium.com

## Nested Lists

Nested Lists - HackerRank - Coding Exercises - Tech CookBook

## Nested Lists – HackerRank

October 10, 2019 Yuki Coding Exercises

## Problem

Given the names and grades for each student in a Physics 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 same grade, order their names alphabetically and print each name on a new line.Input Format

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

The 2N subsequent lines describe each student over 2 lines; the first line contains a student’s name, and 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 Physics; if there are multiple students, order their names alphabetically and print each one on a new line.

Sample Input 0

5 Harry 37.21 Berry 37.21 Tina 37.2 Akriti 41 Harsh 39

Sample Output 0

Berry Harry

Explanation 0

There are  5 students in this class whose names and grades are assembled to build the following list:

python students = [['Harry', 37.21], ['Berry', 37.21], ['Tina', 37.2], ['Akriti', 41], ['Harsh', 39]]

The lowest grade of  37.2 belongs to Tina. The second lowest grade of  37.21 belongs to both Harry and Berry, so we order their names alphabetically and print each name on a new line.

## Solution

students = [] score_list = []

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

temp = [] name = input()

score = float(input())

temp.append(name) temp.append(score)

score_list.append(score)

students.append(temp)

score_list = list(dict.fromkeys(score_list))

score_list.sort()

if len(students) >= 2:

second_lowest_students = []

second_lowest_score = score_list

for i in students:

if second_lowest_score in i:

# print(i)

second_lowest_students.append(i)

else: pass

print('\n'.join(sorted(second_lowest_students, key=lambda second_lowest_students: second_lowest_students)))

else:

print(students)

The key to this problem is prepare two groups of list. One list consists of student and its score. e.g. [['Ken', 20.0], ['Jenny', 34.0], ['Lee', 20.0], ['Paul', 54.0]]

Other list is collection of scores based on the score inputs. (score_list) This list will help you to rank from lowest to highest. (The list is also cleaned up duplicates) e.g. [20.0, 34.0, 54.0]

The rest is, check the value of second lowest score in the score_list and check if there is a match in the students list with that scoring.