Leçon 7
Python, manipuler et parcourir une liste
Le cours écrit
7.1 Changer, ajouter, supprimer
Voici des relevés de pluie, en millimètres, sur quatre jours. Le tableau montre la liste après chaque instruction.
| Instruction | Effet | Liste P obtenue |
|---|---|---|
P = [4, 0, 7, 2] |
création | |
P[1] = 3 |
change l'élément d'indice | |
P.append(5) |
ajoute à la fin | |
del P[0] |
supprime l'élément d'indice | |
P.remove(2) |
supprime la valeur |
Attention. Après del, les éléments suivants se décalent : leurs indices changent. S'il y a plusieurs fois la même valeur, remove ne supprime que la première.
7.2 Parcourir par les indices
range(len(P)) donne tous les indices de la liste.
for i in range(len(P)):
print(i, P[i])
Avec contenant , ce programme affiche les indices et les éléments, ligne après ligne : 0 3, puis 1 7, puis 2 5.
7.3 Itérer sur les éléments
On peut aussi passer directement par les éléments. C'est plus simple quand la place de l'élément n'a pas d'importance.
for x in P:
print(x)
Ici, x prend les valeurs , , puis . Voici par exemple une fonction qui renvoie le plus grand élément d'une liste.
def maximum(L):
m = L[0]
for x in L:
if x > m:
m = x
return m
Ainsi, maximum([3, 7, 5]) renvoie .
7.4 Comparer un élément au suivant
Les indices deviennent utiles dès qu'on compare un élément au suivant. Reprenons la suite de l'exemple 12.
>>> L = [n**2 - 6 * n + 1 for n in range(7)]
>>> L
[1, -4, -7, -8, -7, -4, 1]
>>> [L[i + 1] - L[i] for i in range(len(L) - 1)]
[-5, -3, -1, 1, 3, 5]
On retrouve les valeurs de . Le len(L) - 1 vient de ce que le dernier élément n'a pas de suivant.
7.5 Tester si une liste est croissante
def croissante(L):
for i in range(len(L) - 1):
if L[i + 1] < L[i]:
return False
return True
Dès qu'un élément est suivi d'un plus petit, la fonction renvoie False : un seul contre-exemple suffit. Si la boucle va jusqu'au bout, elle renvoie True. Ainsi, croissante([1, 4, 9, 16]) renvoie True, et croissante([1, -4, -7]) renvoie False.
Attention. Ce test ne porte que sur les termes de la liste. Il ne démontre rien pour la suite entière.
Exercices 13 et 14
- Exercice 13 : suivre une liste
- Exercice 14 : parcourir une liste
Corrigés
Cherche d'abord les exercices sur ta feuille, puis compare avec le corrigé détaillé.