Explication de la leçon
Après cette leçon, tu seras capable de :
.sort() et reconnaître sa valeur de retour None.sorted() tout en laissant l'originale inchangée.reverse=True.Le tri et l'inversion sont des opérations différentes. Le tri organise des éléments comparables par valeur ; l'inversion se contente de basculer leur ordre existant.
items.sort() modifie la liste d'origine et renvoie None. Si tu as besoin d'une version ordonnée distincte, utilise sorted(items) : cela crée une nouvelle liste, même lorsque l'entrée est une autre séquence telle qu'un tuple. Les deux utilisent par défaut l'ordre croissant ; reverse=True produit un ordre décroissant.
items.reverse() inverse l'ordre existant sur place ; il ne trie rien. Évite de compter sur .sort() ou .reverse() pour produire une liste renvoyée.
Cette leçon utilise des valeurs que Python peut comparer directement (des nombres avec des nombres, ou des chaînes avec des chaînes). Trier des dictionnaires selon des champs imbriqués avec une fonction key= appartient à Pensée pythonique, après l'introduction des fonctions d'ordre supérieur.
versions = [5, 2, 4]
versions.sort()
print(versions)Sortie :
[2, 4, 5]La liste existante contient désormais les valeurs triées.
latencies = [80, 40, 65]
ordered = sorted(latencies)
print(ordered)
print(latencies)Sortie :
[40, 65, 80]
[80, 40, 65]sorted() renvoie une nouvelle liste, laissant la source inchangée.
scores = [7, 12, 9]
scores.sort(reverse=True)
print(scores)Sortie :
[12, 9, 7]reverse=True modifie le sens du tri.
steps = ["compile", "test", "ship"]
steps.reverse()
print(steps)Sortie :
['ship', 'test', 'compile']La séquence est inversée, et non ordonnée alphabétiquement.
| Objectif | Python | Modifie l'original ? |
|---|---|---|
| Trier par ordre croissant | items.sort() | Oui |
| Copie triée | sorted(items) | Non |
| Trier par ordre décroissant | sorted(items, reverse=True) | Non |
| Inverser l'ordre actuel | items.reverse() | Oui |
Résultat de items.sort() | None | — |
ordered = items.sort() stocke None, pas une liste triée..reverse() n'est pas équivalent à un tri par ordre décroissant..sort() mute la liste d'origine ; préfère sorted() lorsqu'il importe de préserver les entrées.TypeError.