Il est possible d’effectuer sur une liste des opérations globales, c’est-à-dire des opérations qui concernent l’ensemble de ses éléments sans différenciation, sans utilisation des index ou des valeurs des éléments.
I. Réaliser des opérations sur des listes
On obtient le nombre d’éléments (la longueur) de la liste nommée liste avec l’instruction len(liste).
La somme des éléments de la liste (si les valeurs sont numériques) s’obtient par sum(liste).
À noter
En combinant ces deux opérations, on peut aisément calculer, lorsque les éléments de la liste ont tous des valeurs numériques, la moyenne de toutes les valeurs.
Pour inverser l’ordre des éléments d’une liste, on utilise la méthode « reverse() ».
Exemple : avec liste7.reverse(), la liste liste7 est modifiée, remplacée par la liste « inversée ».
Pour simplement afficher dans l’ordre inverse les éléments de liste7 (sans modification de liste7), on peut saisir :
Les valeurs sont affichées les unes en dessous des autres (dans l’ordre inverse de celui où elles figurent dans liste7).
II. Trier les éléments d’une liste
À noter
Le tri permet de déterminer les valeurs minimale et maximale lorsque toutes les valeurs sont numériques. Il existe aussi dans Python des méthodes min(liste) et max(liste) prédéfinies.
Pour trier les éléments d’une liste suivant leur valeur (ordre croissant pour des nombres, ordre alphabétique pour des chaînes de caractères), on utilise :
• La méthode de liste « sort() ». Exemple : liste7.sort() : la liste liste7 est modifiée, sa « valeur » initiale est « perdue », remplacée par la nouvelle liste ordonnée.
• La fonction « sorted() ». Exemple : sorted(list7) : la liste liste7 n’est pas modifiée, il faut nommer et enregistrer la nouvelle liste.
Pour obtenir un tri dans l’ordre inverse (décroissant) : liste7.sort(reverse = True) ou sorted(list7, reverse = True).
Méthode
Déterminer la valeur médiane d’une liste de valeurs numériques
Écrire une fonction en Python permettant de déterminer la note médiane d’une série de notes.
On rappelle que pour une série statistique ordonnée (x1 ; x2 ; x3 ; … ; xn), la médiane M est définie par :
• si n est impair, alors M=xn+12 ;
• si n est pair avec n = 2k, alors M=xk+xk+12.
Vérifier avec les deux listes suivantes :
a. L1 = [11, 7, 2, 14, 10, 11, 5, 12, 8, 16, 6, 15, 12, 7, 7, 18, 10].
b. L2 = [10, 1, 5, 6, 11, 3, 19, 11, 10, 9, 3, 14, 7, 13, 4, 15].
Conseils
Il est plus commode de classer par ordre croissant les éléments de la liste.
On effectue ensuite un test sur la parité du nombre d’éléments.
Il faut faire attention aux index des éléments de la liste : si la série ordonnée est (x1 ; x2 ; x3 ; … ; xn) et si la liste correspondante est notée L, alors, pour tout entier j compris entre 1 et n, xj = L[j – 1].
Solution
Avec l’instruction « L.sort() », la liste L est ordonnée, la liste initiale (mêmes valeurs mais dans un ordre éventuellement différent) est « écrasée ».
« if n%2==0 » signifie « si le reste de n dans la division euclidienne par 2 est 0 », autrement dit « si n est pair ».
a. En appliquant cette fonction à L1, on trouve que sa médiane est 10.
b. En l’appliquant à L2, on trouve une médiane égale à 9,5.
À noter
Les index des éléments d’une liste doivent être des nombres entiers. Même si n est pair, n2 n’est pas considéré par Python comme un entier, d’où la syntaxe int(n/2) qui transforme cette valeur en entier.