Zadaniem w python jest napisanie programu sortującego krotki (imię, wiek, wzrost) rosnąco, gdzie imię jest ciągiem znaków, wiek i wzrost są liczbami. Tuple są wprowadzane przez konsolę. Kryteria sortowania są następujące:
1: Sortuj na podstawie nazwiska;
2: Następnie sortuj na podstawie wieku;
3: Następnie sortuj na podstawie wyniku.
Priorytetem jest to, że nazwisko > wiek > wynik.
Jeśli na wejściu do programu podamy następujące tuple:
Tom,19,80
John,20,90
Jony,17,91
Jony,17,93
Json,21,85
Wtedy wyjściem programu powinno być:
[('John', '20', '90'), ('Jony', '17', '91'), ('Jony', '17', '93'), ('Json', '21', '85'), ('Tom', '19', '80')].


Odpowiedź :

Witaj :)

Kod:

from operator import itemgetter, attrgetter  

lista = []

while True:

   x = input()

   if not x:

       break

   lista.append(tuple(x.split(",")))  

print(sorted(lista, key=itemgetter(0,1,2)))