Exercices POO Trier des objets avec __lt__
🎉

Bravo!

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

Trier des objets avec __lt__

Pour pouvoir trier des objets avec sorted(), Python a besoin de savoir comment les comparer. Il utilise la méthode speciale __lt__ (lt pour less than, inferieur a). Si tu definis __lt__, sorted() et l'operateur < fonctionnent automatiquement.

Imagine que tu as une classe Eleve avec un nom et une note. Tu veux pouvoir trier tes eleves par note.

def __lt__(self, other):
return self.note < other.note

Apres ca, sorted([e1, e2, e3]) les trie du plus petit au plus grand.

Écris une classe Eleve avec un __init__ qui prend nom et note, un __lt__ qui compare par note, et un __repr__ qui renvoie une chaine du style 'Eleve(Alice, 15)'.

Exemple :
e1 = Eleve('Alice', 15)
e2 = Eleve('Bob', 12)
e1 < e2 renvoie False
sorted([e1, e2]) donne [Eleve(Bob, 12), Eleve(Alice, 15)]

Tests (3/4)

Comparaison <
assert Eleve('Bob', 12) < Eleve('Alice', 15)
Tri sorted
eleves = sorted([Eleve('Alice', 15), Eleve('Bob', 12)])
assert eleves[0].nom == 'Bob'
repr
assert repr(Eleve('Alice', 15)) == 'Eleve(Alice, 15)'

+ 0 tests cachés

Indices (3 disponibles)

solution.py