Exercices Structures de données Trier des tuples
🎉

Bravo!

Débutant 🧠 Fondamentaux 10 XP 0 personnes ont réussi

Trier des tuples

Quand tu as une liste de tuples, Python les trie par défaut selon le premier élément, puis le deuxième en cas d'égalité, etc. C'est ce qu'on appelle le tri lexicographique.

Par exemple :
sorted([(3, 'c'), (1, 'a'), (2, 'b')]) donne [(1, 'a'), (2, 'b'), (3, 'c')]

Mais parfois tu veux trier selon un autre élément. Pour ca, tu utilises le paramètre key de sorted(). Le paramètre key prend une fonction qui dit a sorted() quelle valeur utiliser pour comparer.

Par exemple, pour trier par le deuxième élément :
sorted([(1, 'c'), (2, 'a'), (3, 'b')], key=lambda x: x[1])
donne [(2, 'a'), (3, 'b'), (1, 'c')]

Écris une fonction trier_par_note(eleves) qui prend une liste de tuples (nom, note) et renvoie la liste triée par note décroissante (du meilleur au moins bon).

Exemple :
trier_par_note([('Alice', 15), ('Bob', 18), ('Claire', 12)]) renvoie [('Bob', 18), ('Alice', 15), ('Claire', 12)]

Tests (4/5)

Cas normal
assert trier_par_note([('Alice', 15), ('Bob', 18), ('Claire', 12)]) == [('Bob', 18), ('Alice', 15), ('Claire', 12)]
Liste vide
assert trier_par_note([]) == []
Un seul élève
assert trier_par_note([('Ada', 20)]) == [('Ada', 20)]
Notes identiques
assert len(trier_par_note([('A', 10), ('B', 10)])) == 2

+ 0 tests cachés

Indices (3 disponibles)

solution.py