Skip to content

Trier une liste, une chaîne, un tuple en Python (sort, sorted)

En Python, il existe deux manières, sort() et sorted(), de trier les listes (list) dans l’ordre croissant ou décroissant. Si vous souhaitez trier des chaînes (str) ou des tuples (tuple), utilisez sorted().

Cet article décrit le contenu suivant.

  • La méthode de type liste sort() trie la liste d’origine
  • La fonction intégrée sorted() renvoie une liste triée
  • Comment trier les chaînes et les tuples

Si vous souhaitez inverser ou mélanger des éléments de manière aléatoire, consultez les articles suivants.

sort() et sorted() ont le paramètre key, qui n’est pas décrit ici.

Consultez l’article suivant pour obtenir des exemples d’utilisation du paramètre key.

La méthode de type liste sort() trie la liste d’origine

sort() est une méthode de type liste.

sort() est un processus destructeur qui trie la liste d’origine sur place.

org_list = [3, 1, 4, 5, 2]

org_list.sort()
print(org_list)
# [1, 2, 3, 4, 5]

Notez que reverse() renvoie None.

print(org_list.sort())
# None

Par défaut, la liste est triée par ordre croissant. Si vous souhaitez trier par ordre décroissant, définissez le paramètre reverse sur True.

org_list.sort(reverse=True)
print(org_list)
# [5, 4, 3, 2, 1]

La fonction intégrée sorted() renvoie une liste triée

trié() est une fonction intégrée.

Spécifier une liste à sorted() renvoie une liste triée. La liste originale reste inchangée.

org_list = [3, 1, 4, 5, 2]

new_list = sorted(org_list)
print(org_list)
print(new_list)
# [3, 1, 4, 5, 2]
# [1, 2, 3, 4, 5]

Comme sort(), par défaut, la liste est triée par ordre croissant. Si vous souhaitez trier par ordre décroissant, définissez le paramètre reverse sur True.

new_list_reverse = sorted(org_list, reverse=True)
print(org_list)
print(new_list_reverse)
# [3, 1, 4, 5, 2]
# [5, 4, 3, 2, 1]

Comment trier les chaînes et les tuples

Étant donné que les chaînes et les tuples sont immuables, il n’y a pas de méthode sort() qui met à jour l’objet d’origine.

D’autre part, vous pouvez spécifier non seulement des listes mais également des chaînes et des tuples à la fonction triée() qui crée une nouvelle liste triée. Étant donné que trié() renvoie une liste, elle doit être convertie en chaîne ou en tuple.

trier les chaînes

Passer une chaîne à sorted() renvoie une liste contenant les caractères triés en tant qu’éléments.

org_str = 'cebad'

new_str_list = sorted(org_str)
print(org_str)
print(new_str_list)
# cebad
# ['a', 'b', 'c', 'd', 'e']

Utilisez la méthode join() pour concaténer une liste de caractères en une seule chaîne.

new_str = ''.join(new_str_list)
print(new_str)
# abcde

Vous pouvez écrire sur une seule ligne. Si vous souhaitez trier par ordre décroissant, définissez l’argument reverse sur True.

new_str = ''.join(sorted(org_str))
print(new_str)
# abcde

new_str_reverse = ''.join(sorted(org_str, reverse=True))
print(new_str_reverse)
# edcba

L’ordre des caractères est déterminé par leur point de code Unicode.

Trier les tuples

Le tri des tuples est le même que pour les chaînes. Passer un tuple à sorted() renvoie une liste triée.

org_tuple = (3, 1, 4, 5, 2)

new_tuple_list = sorted(org_tuple)
print(org_tuple)
print(new_tuple_list)
# (3, 1, 4, 5, 2)
# [1, 2, 3, 4, 5]

Pour convertir une liste en tuple, utilisez tuple().

new_tuple = tuple(new_tuple_list)
print(new_tuple)
# (1, 2, 3, 4, 5)

Vous pouvez écrire sur une seule ligne. Si vous souhaitez trier par ordre décroissant, définissez l’argument reverse sur True.

new_tuple = tuple(sorted(new_tuple_list))
print(new_tuple)
# (1, 2, 3, 4, 5)

new_tuple_reverse = tuple(sorted(new_tuple_list, reverse=True))
print(new_tuple_reverse)
# (5, 4, 3, 2, 1)