Created
April 2, 2018 09:38
-
-
Save onuryilmaz/8b01054ad3c567a87b6978bf941dcc15 to your computer and use it in GitHub Desktop.
Python Questions
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Question: | |
You are required to write a program to sort the (name, age, height) tuples by ascending order where name is string, age and height are numbers. The tuples are input by console. The sort criteria is: | |
1: Sort based on name; | |
2: Then sort based on age; | |
3: Then sort by score. | |
The priority is that name > age > score. | |
If the following tuples are given as input to the program: | |
Tom,19,80 | |
John,20,90 | |
Jony,17,91 | |
Jony,17,93 | |
Json,21,85 | |
Then, the output of the program should be: | |
[('John', '20', '90'), ('Jony', '17', '91'), ('Jony', '17', '93'), ('Json', '21', '85'), ('Tom', '19', '80')] | |
Hints: | |
In case of input data being supplied to the question, it should be assumed to be a console input. | |
We use itemgetter to enable multiple sort keys. | |
Solutions: | |
from operator import itemgetter, attrgetter | |
l = [] | |
while True: | |
s = raw_input() | |
if not s: | |
break | |
l.append(tuple(s.split(","))) | |
print sorted(l, key=itemgetter(0,1,2)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment