Python : Les dictionnaires

Vous lisez
Python : Les dictionnaires

Introduction

Les dictionnaires sont des objets qui peuvent en contenir d’autres.
Au lieu d’héberger des informations dans un ordre précis comme les listes, un dictionnaire associe chaque objet contenu à une clé (généralement une chaîne de caractères).

Il s’agit d’un concept essentiel en programmation objet !

  • Clé 1
    • Valeur 1
  • Clé 2
    • Valeur 2

Un dictionnaire est un type de données extrêmement puissant et pratique.
Il se rapproche des listes sur certains points mais, sur beaucoup d’autres, il en diffère totalement.

La liste

  • Objet conteneur d’autres objets.
  • Pour accéder aux objets contenus, il faut connaître leur position dans la liste.
  • Cette position se traduit par des entiers, appelés indices, compris entre 0 (inclus) et la taille de la liste (non incluse).

Le dictionnaire

  • Objet conteneur d’autres objets également.
  • Mais aucune structure ordonnée.
  • Pour accéder aux objets contenus, on n’utilise pas nécessairement des indices mais des clés qui peuvent être de bien des types distincts.

Création et édition

Il existe deux moyens de créer des dictionnaires:

A l’aide de la fonction “dict()”
cours-python-les-dico-1

A l’aide des accolades “{}”
cours-python-les-dico-2

Les parenthèses délimitent les tuples, les crochets délimitent les listes et les accolades {} délimitent les dictionnaires.

Pour ajouter un élément on précise entre crochet la clé à laquelle nous souhaitons accéder.

cours-python-les-dico-3

Si la clé n’existe pas, elle est ajoutée au dictionnaire avec la valeur spécifiée après le signe “=”.
Sinon, l’ancienne valeur à l’emplacement indiqué est remplacée par la nouvelle :

cours-python-les-dico-4

Notion de clé et valeur

Accès à la valeur d’une clé

cours-python-les-dico-5

Si la clé n’existe pas dans le dictionnaire, une exception de type KeyError sera levée.

Un dictionnaire ne peut pas contenir deux clés identiques. La seconde valeur écrasant la première pour un même nom de clé. En revanche rien n’empêche d’avoir deux valeurs identiques dans deux clés différentes.

Les clés ne sont pas obligatoirement des chaînes de caractères.

cours-python-les-dico-6

Ce fonctionnement ressemble à celui d’une liste mais ce n’est pas le cas.
Si vous supprimez par exemple l’indice 2, le dictionnaire, contrairement aux listes, ne va pas décaler toutes les clés d’indice supérieur à l’indice supprimé. Il n’a pas été conçu pour.

Exemple

cours-python-les-dico-7

On souhaite représenter un plateau d’échecs.

Traditionnellement, on représente une case de l’échiquier par une lettre (de A à H) suivie d’un chiffre (de 1 à 8).

La lettre définit la colonne et le chiffre définit la ligne.

Nous allons créer un dictionnaire dont les clés seront des tuples contenant la lettre et le chiffre identifiant la case, auxquelles on associe comme valeurs le nom des pièces.

cours-python-les-dico-8 cours-python-les-dico-9 cours-python-les-dico-10

Supprimer des clés

Comme pour les listes, il existe deux méthodes:

A l’aide du mot clé “del”
cours-python-les-dico-11

A l’aide de la méthode “pop()”
cours-python-les-dico-12
→ La méthode pop() renvoie la valeur supprimée en même temps que la clé

Méthodes de parcours

  1. Parcours des clés

    Il est possible de parcourir les clés d’un dictionnaire de la même manière qu’une liste.
    cours-python-les-dico-13
    La méthode keys() de la classe dict permet d’obtenir ce même résultat:
    cours-python-les-dico-14
    Comme les dictionnaires n’ont pas de structure ordonnée, les clés ne s’affichent pas dans l’ordre dans lequel on les a entrées.
  2. Parcours des valeurs

    On peut aussi parcourir les valeurs contenues dans un dictionnaire à l’aide de la méthode values().
    cours-python-les-dico-15Peu utilisé car il est plus pratique de parcourir la liste des clés, puis les valeurs correspondantes.
    Il est possible de l’utiliser dans une condition:
    cours-python-les-dico-16
  3. Parcours des clés et valeurs simultanément

    Pour avoir en même temps les clés et les valeurs on utilise la méthode items().
    cours-python-les-dico-17

En résumé

  • Un dictionnaire est un objet conteneur associant des clés à des valeurs.
  • Pour créer un dictionnaire, on utilise la syntaxe:
    dictionnaire = { cle1:valeur1, cle2:valeur2, cleN:valeurN }
  • On peut ajouter ou remplacer un élément dans un dictionnaire:
    dictionnaire[cle] = valeur
  • On peut supprimer une clé (et sa valeur correspondante) d’un dictionnaire en utilisant:
    • le mot-clé del
    • la méthode pop()
  • On peut parcourir un dictionnaire grâce aux méthodes:
    • keys() : parcourt les clés
    • values() : parcourt les valeurs
    • items() : parcourt les couples clé-valeur

Cours basé sur les travaux de Vincent Le Goff

Qu'avez-vous pensé de cet article ?
J'aime
12%
Merci
21%
Pratique
19%
Incomplet
25%
Rien de neuf
24%
A propos de l'auteur
Olivier Schmitt
Photographe professionnel, originaire d'Alsace (France), ancien Directeur Technique sur les films d'animation "Minions", "Moi, Moche et Méchant" et "Le Lorax".

Laisser une réponse