informatique (tronc commun des prépas scientifiques) · Chapitre 9 · Exercice de TD
Trier des fiches — la clé de tri
Les tris · niveau 2
Énoncé
Réaliser un tri de fiches (nom, note) par notes décroissantes, et par ordre alphabétique en cas d'égalité, de deux manières : avec une clé composite, et par tris stables successifs.
Corrigé
fiches = [("Bob", 15), ("Alice", 12), ("Chloe", 15), ("Dan", 12)]
# Approche 1 : Clé composite (note inversée pour le sens décroissant)
r1 = sorted(fiches, key=lambda f: (-f[1], f[0]))
# Approche 2 : Double tri stable successif (critère secondaire d'abord)
r2 = sorted(fiches) # Tri alphabétique
r2 = sorted(r2, key=lambda f: f[1], reverse=True) # Tri par note
assert r1 == r2 == [("Bob", 15), ("Chloe", 15), ("Alice", 12), ("Dan", 12)]