Q5 (21-SPO1U59-INFO-TS1-Q5)
À la suite du programme précédent, les $2$ listes $L1$ et $L2$ sont remplies. Continuer le programme en ajoutant
les actions suivantes :
- Calculer et afficher la moyenne $M$ des valeurs de $L2$ (sans utiliser de fonction prédéfinie !)
- Créer une liste $L3$ contenant les indices de position $i$ des valeurs de $L1$ qui sont supérieures ou égales à $M$ (c’est-à-dire les indices $i$ tels que l’entier $L1[i]$ est supérieur ou égal à M).
- Afficher $L3$ ainsi que sa taille
- Bonus : Afficher chaque élément de $L3$ suivi de l’élément de $L1$ qui lui est associé, sur une ligne d’écran différente – Voir exemple ci-dessous.
Nous nous plaçons dans les conditions de l’examen et faisons usage des listes $L1$, $L2$ et de l’entier $N$ fournies par l’énoncé (car vous n’aurez pas d’ordinateur au partiel ou à l’examen terminal).
On utilise ainsi
$$L1 = [24, 96, 48, 21, 28, 55, 54, 82]$$
$$ L2 = [24, 96, 48, 21, 54] $$
et l’entier $$ N = 3.$$
Pour obtenir la moyenne $M$ des valeurs de $L2$ : On calcule la somme des éléments de cette liste avec $\text{sum}(L2)$. On divise cette somme par la cardinalité $\text{len}(L2)$ de la liste $L2$. C’est ici une application basique de la définition de la moyenne d’une série, ou d’une liste.
On a donc
M = sum(L2) / len(L2)Afin d’obtenir les indices de position $i$ des valeurs de $L1$ supérieures ou égales à $M$, on utilise la méthode index().
Si $q$ est un élément d’une liste LIST, alors
LIST.index(q)retourne l’index de l’élément $q$ au sein de la liste.
On peut ensuite récupérer directement $q$ en tapant
LIST[LIST.index(q)]En python, les indices sont comptés à partir de zéro !
C’est-à-dire, dans $$ L2 = [24, 96, 48, 21, 54] $$ par exemple :
- L’indice de 24 est $0$.
- L’indice de $96$ est $1$.
- L’indice de $48$ est $2$
- L’indice de $21$ est $3$.
- L’indice de $54$ est $4$.

On définit donc
L3 = [L1.index(q) for q in L1 if q >=M]en tant que liste des indices des éléments de $L1$ supérieurs ou égaux à $M$ !

Afin d’afficher $L3$, on peut utiliser
L3ou
print(L3)ou encore
display(L3)Pour afficher la taille de $L3$, on utilise
len(L3)
Réponse à la question BONUS : Pour afficher chaque élément de $L3$ suivi de l’élément de $L1$ qui lui est associé, sur une ligne d’écran différente, on procède de la façon suivante :
- La liste $L3$ est faite des indices $i$ des éléments de $L1$ supérieurs ou égaux à $M$.
- Pour récupérer l’élément de $L1$ correspondant à un indice $i$, il suffit d’utiliser la commande $L1[i]$, qui affiche l’élément de $L1$ avec indice $i$.
Employons une boucle for pour accomplir cette mission :
for q in L3 :
print(str(q)+',', L1[q])Pour chaque élément $q$ de $L3$, on affiche la concaténation de $q$ avec une virgule, et on affiche juste après l’élément $L1[q]$.

