web-dev-qa-db-fra.com

Trier une liste de tuples en fonction de deux éléments

Duplicata possible:
python: comment trier une liste complexe sur deux clés différentes

J'ai une liste de tuples. Je veux les trier en fonction de deux éléments. Voici l'exemple suivant

unsorted = [('a', 4, 2), ('a', 4, 3), ('a', 7, 2), ('a', 7, 3), ('b', 4, 2), ('b', 4, 3), ('b', 7, 2), ('b', 7, 3)]
sorted   = [('a', 4, 2), ('b', 4, 2), ('a', 4, 3), ('b', 4, 3), ('a', 7, 2), ('b', 7, 2), ('a', 7, 3), ('b', 7, 3)]

Je sais comment les trier sur le deuxième élément:

sorted(unsorted, key = lambda element : element[1])

Mais comment faire ça avec deux clés?

31
Razer
sorted(unsorted, key=lambda element: (element[1], element[2]))

J'ai supposé un ordre pour les clés de l'exemple de sortie.

54
Michael J. Barber