Python sort list pour trier des éléments sur place

Python sort list trie une liste sur place en utilisant l’ordre par défaut ou une clé personnalisée. Utilisez-le quand la liste doit être réordonnée pour correspondre à votre logique dans les usages ultérieurs. Important ! Le tri sur place met à jour la liste originale au lieu d’en créer une nouvelle.

Exemple Python Sort List Pour Un Tri Sur Place

Sortie :

La sortie apparaîtra ici...

Sortie :

['Ana', 'Mia', 'Zoe']

Comment Fonctionne Cet Exemple

  1. names commence dans un ordre non trié qui reflète l’arrivée des données.
  2. names.sort() réordonne la même liste sur place, donc tout usage ultérieur voit le nouvel ordre.
  3. La sortie montre la liste maintenant triée par ordre alphabétique.

Erreurs Courantes

Erreur 1 : Penser que sort() renvoie une nouvelle liste.

scores = [88, 92, 75]
new_scores = scores.sort()
print(new_scores)
scores = [88, 92, 75]
scores.sort()
print(scores)

Pourquoi ça arrive : list.sort() renvoie toujours None, parce qu’il mute la liste que vous avez déjà.

Erreur 2 : Trier des types mélangés en Python 3.

items = [3, "10", 2]
items.sort()
items = ["3", "10", "2"]
items.sort(key=int)
print(items)

Pourquoi ça arrive : les nombres et les chaînes ne sont pas directement comparables, donc vous devez normaliser les types ou fournir une clé.

Erreur 3 : Oublier que le tri des chaînes est sensible à la casse.

names = ["ana", "Mia", "zoe"]
names.sort()
print(names)
names = ["ana", "Mia", "zoe"]
names.sort(key=str.lower)
print(names)

Pourquoi ça arrive : les lettres majuscules sont triées avant les minuscules par défaut, ce qui peut sembler hors ordre pour des noms.

sort list vs sorted : lequel utiliser

Utilisez list.sort() quand…Utilisez sorted() quand…
Vous avez déjà une liste et voulez la réordonner sur place.Vous avez besoin d’une nouvelle liste et voulez garder l’ordre original intact.
Vous voulez l’option la plus économe en mémoire.Vous triez n’importe quel itérable, pas seulement une liste.
Vous êtes d’accord pour que la méthode renvoie None.Vous voulez les données triées comme nouvelle valeur.

Règle de base : utilisez list.sort() quand la même liste doit changer ; utilisez sorted() quand vous avez besoin d’un résultat trié séparé.

Considérations De Performance

list.sort() est économe en mémoire car il réorganise la liste existante plutôt que d’en allouer une nouvelle. Si vous n’avez pas besoin de l’ordre original, c’est généralement l’option la plus rapide et la plus efficace. La fonction key est appelée une fois par élément, donc gardez-la simple pour les grandes listes. Si vous devez garder la liste originale intacte, sorted() échange de la mémoire supplémentaire contre cette sécurité.

Plus De Schémas De Tri De Listes

Trier par une clé dérivée, comme la longueur.

labels = ["boîte", "conteneur", "bac"]
labels.sort(key=len)
print(labels)

C’est utile quand la règle d’affichage n’est pas alphabétique et que vous voulez un ordre clair par taille. Cela garde la liste en place tout en appliquant une règle personnalisée.

Trier en ordre décroissant pour les classements.

scores = [88, 92, 75]
scores.sort(reverse=True)
print(scores)

L’ordre décroissant est courant pour les top-N, et reverse=True garde le code simple. La liste est toujours triée sur place, juste dans le sens opposé.

Quand utiliser Python sort list

  • Réordonner une liste qui sera réutilisée ensuite à plusieurs endroits.
  • Garder l’utilisation mémoire basse en évitant la création d’une seconde liste.
  • Appliquer une fonction key quand l’ordre naturel n’est pas celui dont vous avez besoin.
  • Évitez-le quand vous devez préserver l’ordre original ; utilisez sorted() ou copiez d’abord la liste.
  • Évitez-le pour des itérables qui ne sont pas des listes sauf si vous les convertissez explicitement en liste.