Exercices sur le tri
Tri suivant une colonne
Pour ces exercices, on utilisera toujours la liste notes suivante :
1
notes = [[8,12,9], [2,18,15], [14,13,17], [10,11,12]]
Question
Tri suivant une moyenne
Question
Trier les listes de notes en ordre croissant suivant la moyenne arithmétique de l'élève sur l'ensemble des contrôles.
Solution
1
notes.sort(key= lambda x: (x[0]+x[1]+x[2])/3)
Tri suivant une amplitude
L'amplitude pour les notes d'un élève est l'écart entre la plus grande note de l'élève et sa plus petite note.
Question
Bonus : Tri mystère
Question
Quel pourrait être l'effet du code suivant sur la liste L :
1
>>> from random import randint
2
>>> t = len(L)
3
>>> L.sort(key= lambda x: randint(1, t))
Solution
Vous pouvez tester par exemple avec une liste de chaînes :
1
>>> from random import randint
2
>>> L = ["aha", "oh", "aïe", "zut", "zou", "charivari", "shadock"]
3
>>> t = len(L)
4
>>> L.sort(key= lambda x: randint(1, t))
5
>>> L
On associe un entier au hasard à chaque élément de la liste et on trie suivant l'ordre croissant de ces entiers. Cela revient à mélanger la liste.
Remarque :
Pour mélanger une liste, le module random offre la fonction shuffle.