Tri d’une liste en Python : la différence entre trié et classé

Affaires

Il existe deux façons de trier une liste par ordre croissant ou décroissant en Python.

  • sort()
  • sorted()

Si vous voulez trier une chaîne ou un tuple, utilisez sorted().

Les informations suivantes sont fournies ici.

  • Une méthode de type liste qui trie la liste originale.sort()
  • Générer une nouvelle liste triée, fonction intégrée : .sorted()
  • Comment trier les chaînes de caractères et les tuples

Tri de la liste originale, une méthode de type liste : sort()

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

Un processus destructeur dans lequel la liste originale elle-même est réécrite.

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

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

Notez que sort() renvoie None.

print(org_list.sort())
# None

La valeur par défaut est l'ordre ascendant. Si vous voulez trier dans l'ordre décroissant, mettez l'argument reverse à true.

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

Générer une nouvelle liste triée, fonction intégrée : sorted()

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

Renvoie une liste triée lorsque la liste à trier est spécifiée en argument. Il s'agit d'un processus non destructif qui ne modifie pas la liste originale.

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 avec sort(), l'ordre par défaut est l'ordre croissant. Si vous voulez trier dans l'ordre décroissant, mettez l'argument reverse à 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 de caractères et les tuples

Comme les chaînes et les tuples sont immuables, il n'y a pas de méthode sort() disponible pour réécrire l'objet original.

D'autre part, l'argument de la fonction sorted(), qui génère une liste triée en tant que nouvel objet, peut être une chaîne ou un tuple aussi bien qu'une liste. Cependant, comme sorted() renvoie une liste, elle doit être convertie en chaîne ou en tuple.

Tri des chaînes de caractères

Lorsqu'une chaîne de caractères est spécifiée comme argument de la fonction sorted(), une liste est renvoyée dans laquelle chaque caractère de la chaîne triée est stocké comme un élément.

org_str = 'cebad'

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

Pour concaténer une liste de chaînes de caractères en une seule chaîne, utilisez la méthode join().

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

Si vous voulez trier par ordre décroissant, définissez l'argument reverse à 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

La taille d'une chaîne est déterminée par le point de code Unicode (code de caractère) du caractère.

Tri des tuples

Les n-uplets sont identiques aux chaînes de caractères ; la spécification d'un n-uplet comme argument de la fonction sorted() renvoie une liste d'éléments triés.

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 un tuple, utilisez tuple().

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

Si vous voulez trier par ordre décroissant, définissez l'argument reverse à 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)