sorted()
Renvoie une nouvelle liste triée à partir des éléments de n’importe quelle collection.
- Renvoie
- Une nouvelle liste triée.
Exemple
#scores = [72, 95, 64, 88]
print(sorted(scores))
print(sorted(scores, reverse=True))
print(sorted(["Python", "CSS", "HTML"], key=len))
print(scores)Définition et utilisation
#La fonction sorted() crée une nouvelle liste avec les éléments triés. La collection d’origine ne change pas, donc elle fonctionne aussi sur les tuples, les ensembles et les chaînes.
Le paramètre key prend une fonction dont le résultat décide de l’ordre, par exemple key=len trie par longueur, et key=lambda s: s["points"] trie par un champ du dictionnaire. Le paramètre reverse=True inverse l’ordre.
Le tri en Python est stable : les éléments ayant des clés égales conservent leur ordre relatif. Cela permet de trier selon plusieurs critères, en triant d’abord selon le moins important.
Syntaxe
#sorted(iterable, key=None, reverse=False)Paramètres
#iterable
une collection
Les éléments à trier.key
fonction, optionnelle
La fonction qui calcule la clé de tri.reverse
bool, par défaut False
Tri décroissant quandTrue.
Plus d’exemples
#students = [
{"name": "Lucas", "points": 90},
{"name": "Léa", "points": 120},
{"name": "Emma", "points": 90},
]
ranking = sorted(students, key=lambda s: (-s["points"], s["name"]))
print([s["name"] for s in ranking])Bonnes pratiques
#- Pour trier selon plusieurs critères, renvoyez un tuple depuis
key, par ex.(-points, nom). - Si vous voulez trier une liste sur place, sans en créer une nouvelle, utilisez la méthode
list.sort().
Entrées associées
#- sort() vs sorted()list.sort() trie la liste en place et renvoie None ; sorted() renvoie une nouvelle liste triée depuis toute collection, sans modifier l’original.
- list.sort()Trie une liste sur place.
- reversed()Renvoie un itérateur qui parcourt une séquence depuis la fin.
- min()Renvoie le plus petit élément d’une collection, ou le plus petit de plusieurs arguments.
- ord()Renvoie le code Unicode d’un seul caractère, par ex. ord("A") vaut 65. Fait l’inverse de chr().
Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.