Aller au contenu

🏁 Rappels sur les listes Python⚓︎

Remarque

Cette page rappelle rapidement les outils fondamentaux sur les listes Python.

Il ne s'agit pas d'un cours exhaustif sur ce thème.

Présentation⚓︎

Les listes sont des structures de données linéaires : des valeurs stockée dans un certain ordre.

Considérons par exemple les données suivantes présentant des informations sur un animal (nom, espèce, date de naissance) :

Oli Chat 10 juin 2018

Ces données sont organisées en colonnes :

  • la première contient le nom,
  • la deuxième son espèce,
  • la troisième son jour de naissance,
  • etc

Ces données peuvent être représentées dans un objet Python de type list :

🐍 Script Python
# indices     0       1   2       3     4
animal = ["Oli", "Chat", 10, "juin", 2018]

Dans ce cadre on distingue les indices et les valeurs des éléments :

  • l'indice correspond à la position de l'élément dans la liste (un peu comme le numéro de la colonne),

  • la valeur est le contenu à proprement parler.

Attention

En Python comme dans bien d'autres langages informatiques, les indices débutent à 0.

Notons immédiatement que, dans une liste, les valeurs peuvent être de types variés : ici des chaînes de caractères (str) et des entiers (int).

Utilisation⚓︎

On rappelle les opérations suivantes sur les listes :

Création
  • Création d'une liste vide :
🐍 Script Python
vide = [ ]
  • Création d'une liste « à la main » :
🐍 Script Python
animal = ["Oli", "Chat", 10, "juin", 2018]
  • Création d'une liste contenant plusieurs fois la même valeur :
🐍 Script Python
mille_None = [None] * 1000
Longueur
  • La longueur d'une liste est données par la fonction len:
🐍 Console Python
>>> repertoire = ["Clarissa", "Dalloway", 14, "May", 1925]
>>> len(repertoire)
5
Lecture de valeur

Les valeurs sont repérées par leur indice (la première est à l'indice 0).

  • On accède à une valeur en utilisant des crochets :
🐍 Console Python
>>> repertoire = ["Clarissa", "Dalloway", 14, "May", 1925]
>>> repertoire[0]
'Clarissa'
>>> repertoire[2]
14
  • La dernière valeur est à l'indice len(repertoire) - 1 :
🐍 Console Python
>>> repertoire[len(repertoire) - 1]
1925
  • Python autorise les indices négatifs : la dernière valeur a pour indice -1, l'avant-dernière -2, etc
🐍 Console Python
>>> repertoire[-1]
1925
>>> repertoire[-2]
'May'
Modification de valeur
  • On modifie des valeurs avec une simple affectation :
🐍 Console Python
>>> animaux = ["éléfants", "girafes", "chevals"]
>>> animaux[0] = "éléphants"
>>> animaux[2] = "chevaux"
>>> animaux
['éléphants', 'girafes', 'chevaux']
Parcours

On considère la liste animaux = ['éléphants', 'girafes', 'chevaux']

  • Parcours selon les indices :
🐍 Console Python
>>> for i in range(len(animaux)):
        print("Indice :",i, "; Valeur :", animaux[i])
Indice : 0 ; Valeur : 'éléphants'
Indice : 1 ; Valeur : 'girafes'
Indice : 2 ; Valeur : 'chevaux'
  • Les parcours selon les valeurs :
🐍 Console Python
>>> for animal in animaux:
        print(animal)
'éléphants'
'girafes'
'chevaux'
Ajout d'éléments

On peut ajouter des éléments à la fin d'une liste en utilisant append :

🐍 Console Python
>>> conjonctions = ["mais", "ou", "et", "donc", "or"]
>>> conjonctions.append("ni")
>>> conjonctions.append("car")
>>> conjonctions
['mais', 'ou', 'et', 'donc', 'or', 'ni', 'car']

Exercices⚓︎

Manipulations élémentaires

Compléter le code ci-dessous afin d'effectuer les actions demandées. Au bout de 10 essais infructueux, le corrigé vous est proposé.

###
# Testsbksl-nlassert listepy-undA == []bksl-nlassert listepy-undB == [10, 11, 12, 13]bksl-nlassert cinquantepy-undtoto == ["Toto"] py-str 50bksl-nlassert greetings == ["Hello", "World"]bksl-nlassert salutations == ["Bonjour", "le", "Monde"]bksl-nlbksl-nl 10/10
# Créer une liste vide nommée listepy-undAbksl-nllistepy-undA = ...bksl-nlbksl-nl# Créer la liste des nombres entiers compris entre 10 et 13 (inclus tous les deux)bksl-nl# nommée listepy-undBbksl-nllistepy-undB = ...bksl-nlbksl-nl# Créer la liste cinquantepy-undtoto qui contient 50 fois la valeur "Toto"bksl-nlcinquantepy-undtoto = ...bksl-nlbksl-nlgreetings = []bksl-nl# Ajouter successivement les valeurs "Hello" et "World" à salutationsbksl-nlgreetings...bksl-nl...bksl-nlbksl-nlsalutations = ["Bjr", "m0nd3"]bksl-nl# Modifiez salutations afin qu'elle contienne désormais :bksl-nl# ["Bonjour", "le", "Monde"]bksl-nl# (ne pas créer de nouvelle liste)bksl-nlsalutations[...] = ...bksl-nl...bksl-nl...bksl-nl# Créer une liste vide nommée listepy-undAbksl-nllistepy-undA = []bksl-nlbksl-nl# Créer la liste des nombres entiers compris entre 10 et 13 (inclus tous les deux)bksl-nl# nommée listepy-undBbksl-nllistepy-undB = [10, 11, 12, 13]bksl-nlbksl-nl# Créer la liste cinquantepy-undtoto qui contient 50 fois la valeur "Toto"bksl-nlcinquantepy-undtoto = ["Toto"] py-str 50bksl-nlbksl-nlgreetings = []bksl-nl# Ajouter successivement les valeurs "Hello" et "World" à salutationsbksl-nlgreetings.append("Hello")bksl-nlgreetings.append("World")bksl-nlbksl-nlbksl-nlsalutations = ["Bjr", "m0nd3"]bksl-nl# Modifiez salutations afin qu'elle contienne désormais :bksl-nl# ["Bonjour", "le", "Monde"]bksl-nl# (ne pas créer de nouvelle liste)bksl-nlsalutations[0] = "Bonjour"bksl-nlsalutations[1] = "le"bksl-nlsalutations.append("Monde")bksl-nlbksl-nl

A

Z

Recherche d'indice - non guidé

Il s'agit de déterminer l'indice de la plus petite valeur dans une liste non-vide.

Indice du minimum d'un tableau

Recherche de valeur - non guidé

La recherche de la valeur maximale dans une liste. Classique.

Maximum

Modification d'un tableau - non guidé

On se donne un tableau, une valeur cible et une valeur de remplacement et il faut parcourir le tableau et remplacer la cible par la nouvelle valeur.

Remplacer une valeur