Dictionnaires

Signaler

Les dictionnaires Python (appelés aussi tableaux associatifs ou tables de hachage) permettent d’associer des valeurs à des clés. À partir d’une clé, on peut alors accéder directement à la valeur qui lui est associée.

I. Caractéristiques

Les dictionnaires sont des conteneurs (comme les listes et les tuples).

Les dictionnaires sont mutables : on peut ajouter, supprimer ou modifier leur contenu.

Les dictionnaires ne sont pas des séquences : on ne peut pas accéder à leur contenu en donnant un indice.

Dans un dictionnaire, les clés doivent être récursivement non mutable, et chaque clé est unique.

Mot clé

Une clé récursivement non mutable est non mutable et ne contient que des éléments récursivement non mutables. Exemples de clés : une chaîne de caractères, un nombre, un tuple de nombres, un tuple de tuples de nombres. En revanche, une liste ou un tuple contenant une liste ne sont pas des clés valides.

Les valeurs associées aux clés peuvent être quelconques.

II. Création et accès à un dictionnaire

Les dictionnaires sont particulièrement utiles pour stocker des enregistrements, c’est-à-dire des données contenant plusieurs champs nommés (dans ce cas, les clés sont souvent des chaînes de caractères). On crée un dictionnaire en indiquant les couples clé/valeur entre accolades.

Exemples :

• On peut utiliser un dictionnaire pour représenter des identités de (petites) personnes avec leur âge :

PB_Bac_05230_numerique1_TT_p083-110_C03_Groupe_Schema_16

• Création d’un dictionnaire vide :

PB_Bac_05230_numerique1_TT_p083-110_C03_Groupe_Schema_17

On accède à une valeur d’un dictionnaire en donnant la clé à laquelle elle est associée (la clé doit exister, sinon cela génère une erreur).

PB_Bac_05230_numerique1_TT_p083-110_C03_Groupe_Schema_10

La fonction len donne le nombre de couples stockés :

PB_Bac_05230_numerique1_TT_p083-110_C03_Groupe_Schema_11

III. Modification et parcours

On ajoute très simplement un couple clé/valeur :

PB_Bac_05230_numerique1_TT_p083-110_C03_Groupe_Schema_12

On modifie de la même façon la valeur associée à une clé déjà présente :

PB_Bac_05230_numerique1_TT_p083-110_C03_Groupe_Schema_13

Comme les listes et les tuples, les dictionnaires sont itérables. On itère sur les clés, les valeurs ou les couples clé/valeur.

Depuis Python 3.7, l’ordre de parcours des dictionnaires suit l’ordre d’insertion.

PB_Bac_05230_numerique1_TT_p083-110_C03_Groupe_Schema_14

À noter

Par défaut, on itère sur les clés, ce code est donc équivalent au premier des trois :

PB_Bac_05230_numerique1_TT_p083-110_C03_Groupe_Schema_15