CodeGym /Cours /Python SELF FR /Tri des listes

Tri des listes

Python SELF FR
Niveau 7 , Leçon 8
Disponible

8.1 Tri d'une liste

Le tri des listes en Python est une opération importante qui permet de structurer les données pour une analyse ou une présentation plus facile. Python offre plusieurs façons de trier les listes, chacune pouvant être utile selon la tâche et le résultat attendu.

Méthode sort()

La méthode sort() trie une liste sur place, c'est-à-dire qu'elle modifie la liste d'origine. Elle est très efficace et permet de personnaliser le tri à travers des arguments.


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

On peut trier la liste dans l'ordre inverse en utilisant le paramètre reverse=True.


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

Fonction sorted()

La fonction sorted() crée une nouvelle liste qui est une version triée de l'originale. La liste d'origine n'est pas modifiée, ce qui fait souvent de sorted() un choix préféré lorsqu'il est nécessaire de conserver les données d'origine intactes.


numbers = [5, 2, 9, 1]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # Affichera [1, 2, 5, 9]
print(numbers)  # La liste originale n'est pas modifiée [5, 2, 9, 1]

Il est important de se rappeler que sort() modifie la liste originale, tandis que sorted() renvoie une nouvelle liste triée, laissant l'originale intacte. Utilisez sort() si vous devez modifier les données en place, et sorted() si vous souhaitez conserver l'ordre des données d'origine.

8.2 Tri par clé

Parfois, vous avez besoin de scénarios de tri complexes, ou de trier en ignorant certains paramètres. Dans ce cas, le « tri par clé » est très utile. Pour l'utiliser, vous devez passer un paramètre spécial key à la méthode sort() ou à la fonction sorted().

En guise de valeur du paramètre key, vous devez fournir une fonction qui sera utilisée pour comparer les éléments.

Comparaison de chaînes sans tenir compte de la casse

Avant la comparaison, toutes les chaînes sont converties en minuscules


alist = ["banana", "Orange", "Kiwi", "cherry"]
alist.sort(key=str.lower)
print(alist)  # Affichera ['banana', 'cherry', 'Kiwi', 'Orange']

Exemple de tri d'une liste de tuples

Supposons que vous ayez une liste d'étudiants, où chaque élément est un tuple contenant le nom de l'étudiant et sa note. Vous souhaitez trier les étudiants selon leurs notes :


students = [('Alice', 88), ('Bob', 75), ('Carol', 96)]

def get_grade(student):
    return student[1]
            
students.sort(key=get_grade)
print(students)  # Affichera [('Bob', 75), ('Alice', 88), ('Carol', 96)]

Exemple de tri d'une liste de dictionnaires

Ou encore, vous avez une liste de dictionnaires contenant des informations sur les étudiants. Pour les trier selon leurs notes, vous pouvez écrire un code de ce genre :


students = [
    {'name': 'Alice', 'grade': 88},
    {'name': 'Bob', 'grade': 75},
    {'name': 'Carol', 'grade': 96}
]
        
def get_grade(student):
    return student['grade']
        
sorted_students = sorted(students, key=get_grade)
print(sorted_students)  # Affichera [{'name': 'Bob', 'grade': 75}, {'name': 'Alice', 'grade': 88}, {'name': 'Carol', 'grade': 96}]
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION