[Guide complet du tri des listes en Python] Explication approfondie de la méthode sort() et de la fonction sorted()

1. Qu’est-ce que le tri de listes en Python ?

Pourquoi le tri de listes est-il important ?

Le tri de listes est une opération fondamentale et essentielle dans la gestion et l’analyse des données. En triant les données, vous pouvez améliorer leur lisibilité et améliorer significativement l’efficacité des recherches et des comparaisons. Par exemple, lors du traitement de données en Python, trier des nombres ou des chaînes dans l’ordre facilite la manipulation de jeux de données complexes.

Python fournit la méthode sort() et la fonction sorted() pour trier les listes. Comprendre l’utilisation appropriée de ces fonctions permet un traitement de données plus efficace.

Ad

2. Tri de listes en utilisant la méthode sort() de Python

2.1 Utilisation de base de la méthode sort()

La méthode sort() trie une liste sur place, ce qui signifie que la liste originale est modifiée. Cela élimine le besoin de créer une nouvelle liste, la rendant économe en mémoire. L’exemple suivant démontre le tri d’une liste par ordre croissant :

numbers = [5, 2, 9, 1, 5, 6]
numbers.sort()
print(numbers)  # [1, 2, 5, 5, 6, 9]

2.2 Comment trier par ordre décroissant

Pour trier une liste par ordre décroissant, utilisez l’argument reverse=True.

numbers = [5, 2, 9, 1, 5, 6]
numbers.sort(reverse=True)
print(numbers)  # [9, 6, 5, 5, 2, 1]

2.3 Efficacité mémoire et cas d’utilisation

La méthode sort() est particulièrement utile lorsque l’efficacité mémoire est une priorité. Puisqu’elle modifie la liste originale, elle est avantageuse lors de la manipulation de grands ensembles de données tout en minimisant l’utilisation de la mémoire.

Ad
侍エンジニア塾

3. Tri de listes en utilisant la fonction sorted()

3.1 Utilisation de base de la fonction sorted()

La fonction sorted() retourne une nouvelle liste triée sans modifier l’originale. Cela est utile lorsque vous devez conserver la liste originale intacte tout en obtenant une version triée. L’exemple suivant démontre le tri d’une liste par ordre croissant en utilisant sorted() :

numbers = [5, 2, 9, 1, 5, 6]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # [1, 2, 5, 5, 6, 9]
print(numbers)  # [5, 2, 9, 1, 5, 6]  # The original list remains unchanged

3.2 Différence entre sort() et sorted()

La différence clé est que sorted() crée et retourne une nouvelle liste triée, tandis que sort() modifie la liste originale. Si vous devez conserver la liste originale inchangée ou créer plusieurs versions triées avec différents ordres, sorted() est le meilleur choix.

Ad

4. Tri conditionnel en utilisant le paramètre key

4.1 Tri avec des conditions personnalisées

Les deux sort() et sorted() permettent un tri personnalisé en utilisant le paramètre key. Par exemple, pour trier une liste de chaînes par leur longueur, vous pouvez utiliser l’approche suivante :

words = ['apple', 'banana', 'cherry', 'date']
words.sort(key=len)
print(words)  # ['date', 'apple', 'banana', 'cherry']

4.2 Tri insensible à la casse

Pour trier une liste de chaînes en ignorant les différences de casse, utilisez key=str.lower.

words = ['Apple', 'banana', 'Cherry', 'date']
sorted_words = sorted(words, key=str.lower)
print(sorted_words)  # ['Apple', 'banana', 'Cherry', 'date']

4.3 Tri avancé en utilisant des fonctions lambda

Les fonctions lambda permettent des conditions de tri plus complexes. L’exemple suivant trie une liste de tuples en se basant sur le deuxième élément de chaque tuple :

pairs = [(1, 3), (2, 1), (3, 2)]
sorted_pairs = sorted(pairs, key=lambda pair: pair[1])
print(sorted_pairs)  # [(2, 1), (3, 2), (1, 3)]

Ad

5. Différences de performance entre sort() et sorted()

5.1 Comparaison des performances

Les deux sort() et sorted() utilisent l’algorithme Timsort, qui est généralement rapide. Cependant, sort() modifie la liste sur place, la rendant plus économe en mémoire, surtout lors du travail avec de grands ensembles de données. D’autre part, sorted() crée une nouvelle liste, ce qui consomme plus de mémoire mais est utile lorsque vous devez préserver les données originales.

5.2 Quand utiliser chacun

If you need to process large amounts of data efficiently while minimizing memory usage, sort() is the recommended choice. Conversely, if you need to retain the original list and create multiple sorted versions with different criteria, sorted() is the better option.

Ad

6. FAQ

6.1 Quelle est la principale différence entre sort() et sorted() ?

La méthode sort() modifie la liste originale et renvoie None, tandis que la fonction sorted() renvoie une nouvelle liste triée sans modifier la liste originale.

6.2 Comment trier une liste en Python en utilisant des conditions complexes ?

En utilisant le paramètre key avec une fonction lambda ou une fonction personnalisée, vous pouvez trier les listes en fonction de conditions complexes.

6.3 Quelle est la différence entre la méthode reverse() et sort(reverse=True) ?

La méthode reverse() renverse simplement l’ordre de la liste sans la trier, tandis que sort(reverse=True) trie la liste par ordre décroissant.

Ad
侍エンジニア塾