Skip to content

Instantly share code, notes, and snippets.

@onuryilmaz
Created April 2, 2018 09:38
Show Gist options
  • Save onuryilmaz/8b01054ad3c567a87b6978bf941dcc15 to your computer and use it in GitHub Desktop.
Save onuryilmaz/8b01054ad3c567a87b6978bf941dcc15 to your computer and use it in GitHub Desktop.
Python Questions
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