Comment trier une liste en Python (croissant et décroissant)
Apprenez à trier une liste en Python à l'aide de la méthode sort() et de la fonction sorted(). Découvrez des exemples de tri de clés personnalisé et d’ordre inverse.
Aperçu
Le tri des données est l'une des tâches les plus courantes en programmation, qu'il s'agisse de classer les profils d'utilisateurs par âge, de répertorier les produits par prix ou d'organiser les résultats de recherche. Python propose deux méthodes intégrées et hautement optimisées pour trier les listes : la méthode `list.sort()` et la fonction `sorted()`. Les deux utilisent un algorithme de tri très efficace appelé Timsort, qui s'exécute en complexité temporelle O(N log N).
La principale différence entre les deux est la mutabilité. La méthode `list.sort()` trie la liste sur place, ce qui signifie qu'elle modifie directement la liste d'origine et renvoie `Aucun`. La fonction `sorted()`, quant à elle, laisse la liste d'origine inchangée et renvoie une toute nouvelle liste triée. Cette distinction est cruciale : utilisez `sort()` lorsque vous souhaitez économiser de la mémoire et n'avez pas besoin de l'ordre d'origine, et utilisez `sorted()` lorsque vous devez conserver la liste d'origine intacte ou lors du tri d'itérables non-listes comme des tuples ou des dictionnaires.
Les deux méthodes de tri acceptent deux arguments de mot-clé facultatifs : « reverse » et « key ». L'argument « reverse » est une valeur booléenne ; le définir sur « True » trie la liste par ordre décroissant (inverse). L'argument `key` accepte une fonction qui est appliquée à chaque élément avant la comparaison. Cela permet une logique de tri complexe, telle que le tri d'une liste de chaînes selon leur longueur ou le tri d'une liste de dictionnaires selon une clé spécifique.
Sortie de code et d'exécution
Ce code montre le tri d'une liste de nombres à l'aide de sort() et sorted(), le tri inversé et le tri par clé personnalisée par longueur de chaîne.
numbers = [42, 7, 12, 89, 23]
# 1. Using sorted() (returns new list)
new_sorted = sorted(numbers)
print("Original:", numbers)
print("Sorted new list:", new_sorted)
# 2. Using sort() (in-place modification)
numbers.sort()
print("Modified original list:", numbers)
# 3. Sorting in reverse (descending)
numbers.sort(reverse=True)
print("Reverse sorted list:", numbers)
# 4. Custom sorting (by string length)
words = ["banana", "pear", "apple", "fig"]
words.sort(key=len)
print("Sorted by length:", words)Original: [42, 7, 12, 89, 23]
Sorted new list: [7, 12, 23, 42, 89]
Modified original list: [7, 12, 23, 42, 89]
Reverse sorted list: [89, 42, 23, 12, 7]
Sorted by length: ['fig', 'pear', 'apple', 'banana']Mise en œuvre étape par étape
- Utilisez la fonction sorted() pour trier une copie de la liste sans modifier les données d'origine.
- Utilisez la méthode .sort() directement sur l'objet liste pour le modifier sur place et économiser de la mémoire.
- Passez reverse=True comme paramètre pour trier les éléments par ordre décroissant.
- Utilisez key=lambda x: ... pour trier les éléments en fonction d'une propriété personnalisée (comme la longueur ou les valeurs imbriquées).
Foire aux questions
Quelle est la différence entre list.sort() et sorted() ?
list.sort() modifie la liste sur place et renvoie Aucun, tandis que sorted() laisse la liste d'origine inchangée et renvoie une nouvelle liste triée.
Comment trier une liste de dictionnaires par clé ?
Utilisez le paramètre key avec une fonction lambda ou Operator.itemgetter. Par exemple : list.sort(key=lambda item: item["age"]).
Sujets connexes
Apprenez à trouver la longueur d'une liste en Python à l'aide de la fonction len(). Comprendre la complexité temporelle O(1) et les comptes de vérification.
Comment supprimer les doublons d'une liste en PythonDécouvrez comment supprimer les doublons d'une liste en Python tout en conservant ou en ignorant l'ordre. Comparez les conversions d'ensembles, les clés de dict et les méthodes de boucle.
Comment fusionner deux listes en PythonDécouvrez les meilleures façons de fusionner et de combiner deux listes en Python. Comparez l'opérateur plus, la méthode d'extension, le déballage de liste et les options de chaîne.
Ressources Python recommandées
Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.
Variables et types de données Python expliqués
Comprendre les variables Python et les types de données de base (chaînes, entiers, flottants, booléens). Un guide complet pour débutants sur l'affectation de mémoire en Python.
Aide-mémoire sur les méthodes de liste Python
Guide de référence rapide pour les opérations de liste Python. Maîtrisez l’ajout, l’insertion, la suppression, le tri et le découpage d’éléments.
Python vs JavaScript : quel langage de programmation est le meilleur ?
Une comparaison complète entre Python et JavaScript. Explorez les différences de syntaxe, les performances, les cas d'utilisation (backend et frontend) et des exemples de codage.