Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Listes et dictionnaires en Python

Après cette leçon: Je peux ranger plusieurs valeurs dans des listes et des dictionnaires.

Leçon de 60 min4 commandesLab Linux du quotidien : la trentaine de commandes que les ingénieurs tapent de tête

Garder les notes d’un semestre

Une liste Python garde plusieurs valeurs dans l’ordre, et un dictionnaire garde des valeurs retrouvées par un nom. Ce sont les deux structures que l’on utilise le plus souvent.

Un relevé de notes est une liste. Le prix des produits d’une boulangerie est un dictionnaire : on cherche « croissant » et on trouve 1,20 €. Sans eux, il faudrait une variable par note.

À la fin de cette leçon

Remarque

Je peux ranger plusieurs valeurs dans des listes et des dictionnaires.

Mots-clés

MotCe que ça veut direExemple
Listeplusieurs valeurs rangées dans l’ordre[12, 15, 9]
Indicela place d’une valeur dans la liste, à partir de 0notes[0]
Trancheune partie d’une listenotes[1:3]
Dictionnairedes valeurs retrouvées par une clé{"pain": 1.1}
Cléle nom qui permet de retrouver une valeur

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Une liste garde des valeurs dans l’ordre

On écrit une liste entre crochets, avec des virgules : notes = [12, 15, 9, 18]. Chaque valeur a un indice, sa place. Le premier indice est 0, pas 1.

notes[0] donne 12 et notes[-1] donne la dernière valeur, 18. len(notes) donne le nombre de valeurs, ici 4.

Les indices de [12, 15, 9, 18]

ÉcritureRésultatPourquoi
notes[0]12la première valeur est à l’indice 0
notes[2]9la troisième valeur est à l’indice 2
notes[-1]18-1 compte depuis la fin
notes[1:3][15, 9]de l’indice 1 jusqu’avant le 3
len(notes)4le nombre de valeurs

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Lire le premier, le dernier et le nombre

Commande
python3 -c 'notes = [12, 15, 9]; print(notes[0], notes[-1], len(notes))'

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Prendre une tranche de liste

Commande
python3 -c 'jours = ["lun", "mar", "mer", "jeu"]; print(jours[1:3])'

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Erreur fréquente

Attention

Beaucoup pensent que le premier élément d’une liste est à l’indice 1. Il est à l’indice 0. Une liste de quatre valeurs a les indices 0, 1, 2 et 3 : notes[4] donne une erreur.

Ajouter, lire et parcourir une liste

Code: python
# Les notes d'un relevé.
notes = [12, 15, 9, 18]
print(notes[0])
print(notes[-1])
print(notes[1:3])
notes.append(14)
print(len(notes))
total = 0
for note in notes:
    total = total + note
print(total / len(notes))
# Ajoutez la note 11 avec append puis relancez.

Un dictionnaire retrouve une valeur par sa clé

Un dictionnaire associe une clé à une valeur. On l’écrit entre accolades : prix = {"baguette": 1.1}. On lit prix["baguette"] et on ajoute prix["eclair"] = 2.5.

Le test "tarte" in prix répond vrai ou faux. Une boucle for produit in prix parcourt les clés. Une clé absente donne une erreur : testez avant de lire.

Chercher le prix d’une baguette

Commande
python3 -c 'prix = {"pain": 1.2, "lait": 0.9}; print(prix["pain"])'

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Le catalogue d’une boulangerie

Code: python
# Le prix de quelques produits d'une boulangerie, en euros.
prix = {"baguette": 1.1, "croissant": 1.2, "tarte": 14.0}
print(prix["croissant"])
prix["eclair"] = 2.5
if "tarte" in prix:
    print("La tarte est au catalogue")
for produit in prix:
    print(produit, prix[produit])
# Ajoutez un produit de votre choix.

Un dictionnaire sert à compter des mots

Pour compter les mots d’un texte, coupez-le d’abord avec split(), qui rend la liste des mots. Parcourez ensuite cette liste.

Pour chaque mot : s’il est déjà une clé, ajoutez 1 à son compte. Sinon, créez la clé avec le compte 1.

Couper une phrase en mots

Commande
python3 -c 'print("une phrase de quatre mots".split())'

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Compter les mots d’une phrase

Code: python
# Compter les mots d'une phrase avec un dictionnaire.
phrase = "le pain le beurre le lait"
mots = phrase.split()
comptes = {}
for mot in mots:
    if mot in comptes:
        comptes[mot] = comptes[mot] + 1
    else:
        comptes[mot] = 1
print(comptes)
# Changez la phrase puis relancez.

Pour aller plus loin

Créez le dictionnaire stock = {"baguette": 12, "croissant": 8}. Écrivez une boucle qui retire 1 au stock de chaque produit, puis affiche le nouveau stock.

Ajoutez ensuite un test : si un produit est à 0, affichez « rupture ». Comment éviter l’erreur quand on lit un produit absent ?

À propos de ce labo et de sa source: Lab Linux du quotidien : la trentaine de commandes que les ingénieurs tapent de tête

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.