Méthodes de tri de listes en Python : guide complet
Le tri de données est une opération essentielle dans presque toutes les applications. De la gestion des entrées utilisateur aux algorithmes complexes d'analyse de données. En Python, travailler avec des listes est intuitif. Les outils de tri offrent flexibilité et puissance.
Les bases des listes en Python
Les listes en Python sont des collections ordonnées et modifiables d'objets. Elles permettent de stocker des éléments de différents types et offrent un accès pratique par index.
nombres = [5, 2, 9, 1, 5, 6]
mots = ["banane", "pomme", "cerise"]
liste_mixte = [1, "bonjour", 3.14, True]
Les principales méthodes de tri de listes
Python propose deux façons principales de trier les listes : la méthode sort() et la fonction sorted(). Chacune a ses spécificités et ses cas d'usage.
La méthode sort() — tri sur place
La méthode sort() modifie la liste d'origine et retourne None. Cette approche est efficace en mémoire car elle ne crée pas de nouvelle liste.
nombres = [5, 2, 9, 1]
nombres.sort()
print(nombres) # [1, 2, 5, 9]
Paramètres de la méthode sort()
La méthode sort() accepte les paramètres suivants :
reverse: définit l'ordre de tri (True pour décroissant, False pour croissant)key: une fonction qui détermine le critère de tri
nombres = [5, 2, 9, 1]
nombres.sort(reverse=True)
print(nombres) # [9, 5, 2, 1]
La fonction sorted() — création d'une nouvelle liste
La fonction sorted() retourne une nouvelle liste triée sans modifier la liste d'origine. C'est utile lorsque vous devez conserver l'ordre initial des éléments.
nombres = [5, 2, 9, 1]
nouveaux_nombres = sorted(nombres)
print(nouveaux_nombres) # [1, 2, 5, 9]
print(nombres) # [5, 2, 9, 1] — la liste d'origine est inchangée
Tri décroissant avec sorted()
nombres = [5, 2, 9, 1]
tri_decroissant = sorted(nombres, reverse=True)
print(tri_decroissant) # [9, 5, 2, 1]
Comparaison des méthodes de tri
| Méthode | Modifie la liste | Retourne une valeur | Utilisation |
|---|---|---|---|
| sort() | Oui | Non (None) | Quand l'ordre d'origine n'est pas nécessaire |
| sorted() | Non | Nouvelle liste | Quand il faut conserver les données d'origine |
Tri de chaînes de caractères dans les listes
Tri alphabétique
Pour le tri de chaînes, Python utilise l'ordre lexicographique par défaut :
mots = ["banane", "pomme", "cerise"]
mots.sort()
print(mots) # ['banane', 'cerise', 'pomme']
Tri décroissant
mots = ["banane", "pomme", "cerise"]
mots.sort(reverse=True)
print(mots) # ['pomme', 'cerise', 'banane']
Gestion de la casse lors du tri de chaînes
Sensibilité à la casse
Par défaut, le tri tient compte de la casse. Les majuscules précèdent les minuscules dans la table ASCII :
mots = ["Banane", "pomme", "Cerise"]
print(sorted(mots)) # ['Banane', 'Cerise', 'pomme']
Ignorer la casse
Pour un tri insensible à la casse, utilisez le paramètre key=str.lower :
mots = ["Banane", "pomme", "Cerise"]
print(sorted(mots, key=str.lower)) # ['Banane', 'Cerise', 'pomme']