3. Les listes

Les listes sont très utiles pour stocker plusieurs valeurs différentes dans une seule variable.

3.1. Définir une liste

Pour définir une liste, il faut entourer les valeurs avec des crochets et séparer les différentes valeurs avec des virgules, par exemple

fruits = ['banane', 'fraise', 'pruneaux', 'pommes']

Question

Quelle est la bonne façon de définir une liste avec les saisons?






Les options saisons = ('printemps', 'été', 'automne', 'hiver')et saisons = 'printemps', 'été', 'automne', 'hiver'permettent également de stocker plusieurs éléments dans une variable. Il ne s’agit pas d’une liste, mais d’un tuple.

3.2. Accéléder aux éléments d’une liste

Pour accéder aux éléments d’une liste, on écrit son nom suivit du numéro d’indice entre crochets de l’élément souhaité. Notez bien que le premier élément de la liste a l’indice 0, le deuxième 1, etc. Par exemple fruits[1] correspond au deuxième élément de la liste fruits.

Autre exemple : l’exécution du code suivant affiche pruneaux sur la console :

Question

Qu’affiche le code suivant ?

fruits = ['banane', 'fraise', 'pruneau', 'pommes']
print(fruits[2])




Si on essaie d’accéder à un élément qui n’existe pas, par exemple fruits[10], on reçoit l’erreur

IndexError: list index out of range

Exercice 1

Complétez les argmuments des fonctions print pour qu’il affiche ‘printemps’ et ‘hiver’.

3.3. Ajouter un élément

Pour ajouter un élément à une liste, on utilise la fonction append(). Par exemple : l’exécution du code suivant ajoute un élément ‘mangue’ à la fin de la liste fruits :

Notez la notation pointée, c’est-à-dire le point entre le nom de la liste et la fonction `append(), typique de la programmation orientée objet.

Question

Comment ajouter l’élément ‘Cheval’ à la liste ‘animaux’ ?




3.4. Itérer sur une liste

Une grande utilité des listes est de pouvoir itérer sur une liste, c’est-à-dire pouvoir appliquer une suite d’instructions sur chaque élément de la liste. Cela se fait au moyen d’une boucle for, qui en français se lit pour chaque. Par exemple, l’exécution du code suivant affiche chaque élément de la liste séparément : fruits = [‘banane’, ‘fraise’, ‘pruneau’, ‘pommes’]

Remarquez que les instructions dans la boucle sont répétées autant de fois qu’il y a d’éléments dans la liste, et qu’à chaque passage, la variable fruit (on aurait pu choisir un autre nom) prend la valeur d’un différent élément de la liste.

Exercice 2

On aimerait afficher séparément tous les prénoms qui sont stockés dans une liste prenoms (déjà définie). Complétez le code pour ce faire.

3.5. Obtenir la longueur d’une liste

Pour connaître la longueur d’une liste, on peut utiliser la fonction len.

Par exemple,l’exécution du code suivant affiche 4 sur la console car la liste fruits a 4 éléments :

Note : la liste vide [] a une longueur de zéro.

Question

Quelle instruction permet d’obtenir la longueur de la liste maisons ?




3.6. Modifier un élément d’une liste

Pour modifier les éléments d’une liste, il s’agit d’accéder à un de ses éléments et de lui affecter une nouvelle valeur. Par exemple, l’exécution du code suivant remplace ‘banane’ par ‘mangue’ :

Exercice 3

On a défini la liste des nombres en français dans une liste nombres. Exécutez le code pour trouver l’erreur et corrigez-la.

3.7. Supprimer un élément d’une liste

Pour supprimer le i-ème élément d’une liste, on peut utiliser la fonction pop(i). Par exemple, le code suivant supprime ‘pruneau’ de la liste :

En bonus, la fonction pop(i) renvoie la valeur supprimée. Dans l’exemple précédent, la valeur renvoyée par fruits.pop(2) a été stockée dans element_supprime. Affichons-le :

Exercice 4

On a défini la liste des nombres en français dans une liste nombres. Exécutez le code pour trouver l’intrus et supprimez-le.

Pour supprimer un élément à une liste en connaissant sa valeur, on peut utiliser la fonction `remove(val). Par exemple : l’exécution du code suivant supprime l’élément ayant la valeur ‘fraise’ :

S’il y a plusieurs éléments qui ont la même valeur, c’est l’élément de plus petit indice qui est supprimé.

Question

On définit une liste animaux = ['chat', 'souris', 'rat', 'merle', 'éléphant'] . Comment peut-on supprimer l’élément ‘chat’ de la liste?




3.8. Tester si un élément est dans une liste

Pour tester si un élément est dans une liste, on peut utiliser le mot clé in, ce qui renvoie un booléen (True ou False). Par exemple, le code ci-dessous pour vérifier teste si ‘mangue’ et ‘fraise’ se trouvent dans ‘fruits’ :

Exercice 5

On a défini une liste des nombres entiers nombres. Complétez le code pour que si elle contient le nombre 10, le texte correspondant s’affiche.

3.9. Exercices supplémentaires

Exercice 6

On a défini une liste de nombres nombres = ´['7', '2', '3', 9', '10']. Malheureusement, les nombres sont des chaînes de caratères (str) et non des entiers (int). Transformez chaque élément en nombre entier.