Aller au contenu

Les listes en Python⚓︎

Les listes

Le programme de spécialité mathématique de Première comporte quelques éléments de programmation liés à ce que l'on appelle les listes.

Les listes servent à stocker des données.

Principe⚓︎

Supposons que, dans un jeu, il faille stocker les scores de cinq joueurs, disons :

15 ; 22 ; 120 ; 12 ; 37

pour cela, je peux :

  • soit créer cinq variables, chacune contenant un score, ce qui s'écrirait dans la plupart des langages informatiques :

    🐍 Script Python
    score1 = 15
    score2 = 22
    score3 = 120
    score4 = 12
    score5 = 37
    
    ce qui présente plusieurs inconvénients : la saisie est longue et les opérations sur ces valeurs seront pénibles ; imaginez qu'il y ait 100 valeurs à stocker et que l'on souhaite ensuite en faire la somme : il faudrait taper quelque chose comme :
    🐍 Script Python
    score1 = 15
    score2 = 22
    score3 = 120
    ...
    total = score1 + score2 + score3 + score4 + score5 + score6 + score7 + ...
    
    (les ... devant être complétés à la main par le programmeur !)

  • soit créer une variable qui contient toutes les valeurs, ce qui s'écrirait par exemple en Python :

    🐍 Script Python
    scores = [15, 22, 120, 12, 37]
    
    Le calcul de la somme se ferait alors ainsi :
    🐍 Script Python
    somme = 0 # initialisation à ne pas oublier !
    for score in scores:
        somme = somme + score
    
    La boucle for permet ici à la variable score de prendre successivement chaque valeur de la liste scores.

Présentation rapide⚓︎

Visionnez la vidéo ci-dessous et mettez-la en pause pour tester les commandes dans la fenêtre placée en dessous (remarque : inutile d'utiliser print() pour voir les valeurs des variables en mode Console, par exemple taper maListe[3] puis ++Entrée++ suffit ; pas besoin de print(maListe[3])).

Mais... ça me rappelle quelque chose !

Ou en tout cas, cela le devrait !

Sur le principe, les listes se rapprochent beaucoup des suites de nombres.

Ainsi, parlant de la liste 15 ; 22 ; 120 ; 12 ; 37, je pourrais écrire en mathématiques :

u0 = 15 ; u1 = 22 ; u2 = 120 ; u3 = 12 ; u4 = 37.

J'ai ici choisi de numéroter les termes de la suite à partir de l'indice 0, ce qui est fréquent en mathématiques.

De même, la commande :

🐍 Script Python
maliste = [15, 22, 120, 12, 37]

définit une liste de valeurs numérotées :

valeurs15221201237
indices01234

Remarquez que la cinquième valeur a pour indice 4...

Attention

  • Le premier élément d'une liste a toujours pour indice 0.
  • A chaque indice correspond une seule valeur, on retrouve donc une valeur grâce à son indice (mais il arrive qu'une valeur corresponde à plusieurs indices).
  • La confusion entre indice et valeur est une source d'erreur très fréquente !

Il y a néanmoins une différence essentielle entre les suites et les listes : les listes ont forcément un nombre fini d'éléments !

Création d'une liste par "extension"⚓︎

Je vous invite à tester les commandes qui suivent dans cette console Python :

Comme nous l'avons déjà vu, je peux créer une liste en énumérant toutes ses valeurs, séparées par des virgules, entre crochets :

🐍 Script Python
maliste = [15, 22, 120, 12, 37]

Remarque : une liste peut contenir autre chose que des nombres, comme une liste de courses :

🐍 Script Python
ma_liste_de_courses = ["Beurre", "Pain", "Fromage"]

ou même une liste d'objets de différentes natures (peu utilisé en pratique) :

🐍 Script Python
une_liste = ["Carottes", 25, 3.14, "Choux", -1.3]

ou même rien du tout (nous verrons plus tard que c'est utile !) :

🐍 Script Python
liste = []

Remarque

Nous verrons plus tard d'autres façons de créer des listes (avec append ou en compréhension).

Longueur d'une liste⚓︎

La longueur d'une liste peut être obtenue avec la fonction len (raccourci de length : longueur en anglais) :

🐍 Script Python
len(ma_liste_de_courses)
renverra 3, qui est le nombre d'éléments de la liste ["Beurre", "Pain", "Fromage"].

Accéder à un élément de la liste⚓︎

Pour accéder à un élément de la liste, j'écris le nom de la liste suivie de l'indice de cet élément entre crochets :

🐍 Script Python
une_liste[3]
renvoie le texte "Choux".

(en mode éditeur Python (quand nous écrivons des programmes), l'affichage se ferait avec un print())

Modifier une valeur d'une liste⚓︎

Il est possible de modifier une valeur d'indice connu. Par exemple, si je veux modifier la troisième valeur d'une liste :

🐍 Script Python
liste = [1, 4, 8, 16, 25, 36]
liste[2] = 9
liste

Remarque

Pour modifier tous les éléments d'une liste, utilisez une boucle for, nous y reviendrons.

Exercice

Dans la console Python ci-dessous :

  1. créez une liste (appelez-là comme bon vous semble) ;
  2. demandez l'affichage(*) de cette liste ;
  3. demandez l'affichage de la longueur de cette liste ;
  4. demandez l'affichage de son premier élément ;
  5. demandez l'affichage de son dernier élément ;
  6. modifiez la deuxième valeur de votre liste ;
  7. demandez à nouveau l'affichage de la liste pour vérifier qu'elle a bien été modifiée.

(*) en mode console, il n'y a pas besoin de print()

À retenir

  • pour créer une liste :

    🐍 Script Python
    ze_liste = [val1, val2, val3, etc.]
    

  • pour récupérer un de ses éléments :

    🐍 Script Python
    ze_liste[...]
    

  • la longueur de la liste s'obtient en tapant :
    🐍 Script Python
    len(ze_liste)
    

Exercices : indices et valeurs

Réussissez chaque exercice au moins deux fois chacun (utilisez le bouton "Recommencer l'exercice").