Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Trier des données, et pourquoi

La leçon entière est à lire ici. Créez un compte gratuit pour lancer ses commandes dans un laboratoire et passer ses quiz et ses exercices.

Leçon de 50 minAucune commande

Le classement des magasins

Votre responsable veut les trois magasins qui ont le plus vendu ce mois-ci. Le fichier en compte 140, dans le désordre.

Une fois les ventes triées, la réponse est en haut de la liste.

Trier sert partout : un classement, un rapport par date, une recherche rapide. Cette leçon montre comment un tri marche, puis ce qu’on utilise vraiment au travail.

À la fin de cette leçon

Remarque

Je peux trier des données et dire à quoi cela sert.

Mots-clés

MotCe que ça veut direExemple
Trierranger dans un ordre
Croissantdu plus petit au plus grand
Décroissantdu plus grand au plus petit
Tri par sélectionplacer le plus petit, puis le suivant, et ainsi de suite
Échangermettre deux éléments à la place l’un de l’autre
sortedrend une copie triée d’une listesorted(ventes)

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Trier rend le travail suivant facile

Une liste triée permet la recherche dichotomique, bien plus rapide.

Elle donne aussi un classement : les meilleures ventes sont au début d’une liste décroissante.

Enfin, les doublons se retrouvent côte à côte. Deux factures avec le même numéro sautent aux yeux.

Le tri par sélection place le plus petit

Le tri par sélection fait plusieurs tours.

Au premier tour, il cherche le plus petit élément de toute la liste. Il l’échange avec le premier.

Au deuxième tour, il cherche le plus petit dans le reste, et le met en deuxième place. Il continue jusqu’au bout. La partie triée grandit d’une case à chaque tour.

À vous : regarder le tri tourner

Code: python
# Délais de livraison en jours, pour 5 commandes.
delais = [5, 2, 8, 1, 4]

for i in range(len(delais)):
    # On cherche le plus petit dans la partie pas encore triée.
    plus_petit = i
    for j in range(i + 1, len(delais)):
        if delais[j] < delais[plus_petit]:
            plus_petit = j
    # On l'échange avec l'élément à la place i.
    temporaire = delais[i]
    delais[i] = delais[plus_petit]
    delais[plus_petit] = temporaire
    print("Tour", i + 1, ":", delais)

# Remplacez la liste par [9, 3, 7, 3, 1] et exécutez.

Exemple travaillé : trier 5, 2, 8, 1, 4

TourPlus petit trouvéÉchangeListe après le tour
115 et 11, 2, 8, 5, 4
22aucun, déjà en place1, 2, 8, 5, 4
348 et 41, 2, 4, 5, 8
45aucun, déjà en place1, 2, 4, 5, 8
58aucun1, 2, 4, 5, 8

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Au travail, on utilise sorted

Écrire un tri soi-même sert à comprendre. Au travail, on utilise celui de Python, plus rapide et déjà testé.

sorted(liste) rend une nouvelle liste triée et laisse l’originale intacte. liste.sort() trie la liste elle-même.

Ajoutez reverse=True pour l’ordre décroissant. Les textes sont triés dans l’ordre alphabétique.

À vous : classer les ventes

Code: python
ventes = [1250, 980, 2310, 1740, 640, 2050]

croissant = sorted(ventes)
decroissant = sorted(ventes, reverse=True)

print("Du plus petit au plus grand :", croissant)
print("Les trois meilleures ventes :", decroissant[0], decroissant[1], decroissant[2])
print("La liste d'origine n'a pas bougé :", ventes)

# sort, lui, trie la liste elle-même.
ventes.sort()
print("Après sort :", ventes)

# Triez des prénoms : ["Sarah", "Hugo", "Amine", "Chloé"].

Une erreur fréquente

Attention

Beaucoup pensent que Python trie toujours les nombres comme des nombres. C’est faux s’ils sont écrits en texte, comme après la lecture d’un fichier CSV. Alors "10" passe avant "9", car le caractère 1 vient avant 9. Convertissez d’abord avec int.

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.