N.S.I. WorkSpace Compétence,P-Th-C,Première C3 – Compétences | Trier les données d’une table

C3 – Compétences | Trier les données d’une table

Tri d’une liste ‘simple’

Pour trier une liste il existe une méthode ‘native’ : L.sort(), L étant la liste à trier.

Par défaut le tri s’effectue par ordre croissant. Pour un tri par ordre décroissant il faut ajouter un paramètre à la méthode sort() : L.sort(reverse=True).

Tester dans la console :

In [1]: L = [32, 54, 89, 47, 12, 52, 64, 39, 5, 1, 99, 83]

In [2]: L.sort()

In [3]: L
Out[3]: [1, 5, 12, 32, 39, 47, 52, 54, 64, 83, 89, 99]

In [4]: L.sort(reverse=True)

In [5]: L
Out[5]: [99, 89, 83, 64, 54, 52, 47, 39, 32, 12, 5, 1]

Tri d’une liste de listes (1)

1 – Télécharger le fichier ‘csv’ suivant : liste_films.csv.
2 – Dans un éditeur de langage Python, écrire les instructions qui permettent de construire une table à partir des données contenues dans ce fichier ‘csv’.

Des difficultés ? Coup de pouce…

Une solution… et auto-évaluation

3 – Examiner les dix premiers enregistrements de la table ‘table_films’ : les enregistrements paraissent-ils triés ? Si oui, selon quel(s) attribut(s) ?

for indexE in range(10):
    print(table_films[indexE][0].ljust(25),table_films[indexE][1].ljust(40),
          table_films[indexE][2].ljust(15),table_films[indexE][3].ljust(10))
          
Lune de miel              Elise Otzenberger                        Comédie         12/06/19  
J'veux du soleil          François Ruffin, Gilles Perret           Documentaire    03/04/19  
L'Étreinte                Ludovic Bergery                          Drame           19/05/21  
Teresa de Jesus           Lionel Baillemont                        Drame           30/06/21  
Lourdes                   Thierry Demaizière et Alban Teurlai      ** NC **        08/05/19  
Fille du vent             Malec Démiaro                            ** NC **        22/01/20  
Soul Kids                 Hugo Sobelman                            Documentaire    24/11/21  
Les Amours d'Anaïs        Charline Bourgeois-Tacquet               Comédie         15/09/21  
À cause des filles..?     Pascal Thomas                            Comédie         30/01/19  
Médecin de nuit           Élie Wajeman                             Thriller        16/06/21  

Essayons de trier une table avec la méthode précédente : T.sort() ou T est une table.

4 – Tester dans la console : table_films.sort().

5 – Examiner les dix premiers enregistrements de la table ‘table_films’ : les enregistrements paraissent-ils triés ? Si oui, selon quel(s) attribut(s) ?
A partir des constats, noter ce qu’il est possible de retenir du tri d’une table (liste de listes) effectué avec la méthode « sort() » sans paramètre.

Tri d’une liste de listes (2)

Il est possible de vouloir trier une table (liste de listes) selon un attribut particulier.
Il faut alors s’intéresser au paramètre ‘key’ de la méthode ‘.sort()’.
Ce paramètre prend une fonction comme valeur.
En Python – comme dans d’autres langages – il est possible de faire appel à une ‘fonction anonyme‘.
Pour cela, en Python, on utilise l’expression ‘lambda’.

6 – Tester dans la console : table_films.sort(key = lambda x : x[2]).

7 – Examiner les dix premiers enregistrements de la table ‘table_films’ : les enregistrements paraissent-ils triés ? Si oui, selon quel(s) attribut(s) ?
A partir des constats, noter ce qu’il est possible de retenir du tri d’une table (liste de listes) effectué avec la méthode « sort() » et le paramètre ‘key = lambda x : x[n]’, tel que n est un entier, et 0 ≤ n < len(E), E étant un enregistrement d’une table T.

Tri d’une liste de listes (3)

Il est possible de vouloir trier une table (liste de listes) selon deux ou plusieurs attributs particuliers.
Il faut alors s’intéresser au paramètre ‘key’ de la méthode ‘.sort()’.
Ce paramètre prend une fonction comme valeur.
En Python, considérons le module ‘itemgetter‘ de la bibliothèque ‘operator‘.

8 – Tester dans la console :
from operator import itemgetter
table_films.sort(key=itemgetter(1,0)
)

9 – Examiner les dix premiers enregistrements de la table ‘table_films’ : les enregistrements paraissent-ils triés ? Si oui, selon quel(s) attribut(s) ?
A partir des constats, noter ce qu’il est possible de retenir du tri d’une table (liste de listes) effectué avec la méthode « sort() » et le paramètre ‘key = itemgetter(n,m)’, tel que n et m sont des entiers, et 0 ≤ n, m < len(E), E étant un enregistrement d’une table T.

Source des données : Liste de films français sortis en 2019 | 2020 | 2021


Exercice – Les prénoms des enfants nés à Angers (le retour)

A partir de la table construite à partir du fichier ‘csv’, écrire une version 2 de la fonction ‘top10(table)’ en utilisant une des méthodes de tri d’une table.


Article sous licence << Cliquez pour plus d’informations <<