Opérations globales sur les listes

Signaler

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 :

PB_Bac_05285_Math1_TT_p009-032_C01_Algo_10

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

PB_Bac_05285_Math1_TT_p009-032_C01_Algo_11

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.