Présentation et utilisation

DéfinitionDictionnaire

Un dictionnaire contient plusieurs données, qui sont chacunes séparées en deux parties : la clé et la valeur. Cela s'appelle une paire.

On peut représenter ce dictionnaire à l'écrit de la façon suivante :

Représentation d'un dictionnaire via un tableau

clés

valeurs

ma_cle_1

ma_valeur_1

ma_cle_2

ma_valeur_2

ma_cle_3

ma_valeur_3

SyntaxeEn Python

En Python, on utilise la syntaxe suivante :

1
mon_dictionnaire = {"ma_cle_1": "ma_valeur_1", "ma_cle_2": "ma_valeur_2", "ma_cle_3": "ma_valeur_3"}

Ou, plus souvent, avec des retours à la ligne entre chaque paire :

1
mon_dictionnaire = {
2
    "ma_cle_1": "ma_valeur_1",
3
    "ma_cle_2": "ma_valeur_2",
4
    "ma_cle_3": "ma_valeur_3"
5
}

ExempleInformations d'un client

On souhaite représenter les informations que l'on a sur le client d'une entreprise. On peut utiliser un dictionnaire pour y parvenir :

1
client_1 = {
2
    "nom": "Dupont",
3
    "prénom": "Jean",
4
    "nombre_de_commandes": 4,
5
    "est_abonné": False
6
}

Comme on peut le remarquer, les valeurs peuvent être de type quelconque. Ici, on a des chaînes de caractères, des entiers, et des booléens.

Il en va de même avec les clés, même si la majorité du temps, ce sont des chaînes de caractères qui sont utilisées.

AttentionUnicité des clés

Les clés présentes dans un dictionnaire doivent êtres toutes uniques !

Pourtant, le code suivant ne renvoie pas d'erreur :

1
mon_dico = {
2
    "nom": "Dupont",
3
    "prenom": "Jean",
4
    "nom": "Dupond"
5
}

Si jamais on affiche notre dictionnaire, on remarquera par contre que l'un des deux noms a été effacé. Il faudra donc bien faire attention d'utiliser des noms de clés différentes, sinon on risque de perdre des données.

1
print(mon_dico)
2
# {'nom': 'Dupond', 'prenom': 'Jean'}

Nous allons voir maintenant les trois opérations élémentaires sur les dictionnaires :

  • Ajouter une paire

  • Recherche une paire en utilisant sa clé

  • Supprimer une paire

Ajouter ou modifier une paire

Lorsqu'un dictionnaire est créé, il est possible d'ajouter une nouvelle paire avec la syntaxe suivante :

1
un_dictionnaire[cle] = valeur

Si la clé existe déjà, sa valeur est alors modifiée. La syntaxe est donc très similaire aux listes, sauf qu'au lieu d'avoir l'indice entre les crochets [ ] on a le nom de la clé.

ExempleAjouter et modifier

1
client_1 = {
2
    "nom": "Dupont",
3
    "prénom": "Jean",
4
    "nombre_de_commandes": 4,
5
    "est_abonné": False
6
}
7
8
client_1["naissance"] = 1967
9
client_1["nombre_de_commandes"] += 1  # Fonctionne comme les entiers ! Permet d'incrémenter la valeur de 1.
10
11
print(client_1)
12
# {'nom': 'Dupont', 'prénom': 'Jean', 'nombre_de_commandes': 5, 'est_abonné': False, 'naissance': 1967}

Rechercher une paire

Comme les dictionnaires contiennent tous des noms de clés différents, il peut être intéressant de savoir si une clé est présente dans le dictionnaire.

Pour cela, la syntaxe suivante permet de renvoyer un booléen True si la clé est présente et False sinon.

1
cle in un_dictionnaire

ExempleRechercher

On peut ensuite récupérer ce booléen pour l'afficher ou pour réaliser un test avec un if par exemple :

1
client_1 = {
2
    "nom": "Dupont",
3
    "prénom": "Jean",
4
    "nombre_de_commandes": 4,
5
    "est_abonné": False
6
}
7
8
if "nom" in client_1:
9
    print("Le client a un nom.")
10
else:
11
    print("Le client n'a pas de nom.")
12
13
# Ce code affiche : Le client a un nom.

Il est ensuite intéressant de pouvoir consulter la valeur associée à cette clé. Et rien de plus simple que la syntaxe suivante :

1
un_dictionnaire[cle]

ExempleConsulter

1
client_1 = {
2
    "nom": "Dupont",
3
    "prénom": "Jean",
4
    "nombre_de_commandes": 4,
5
    "est_abonné": False
6
}
7
8
print(f"Le client se nomme {client_1['nom']} {client_1['prénom']}.")
9
# Le client se nomme Dupont Jean.
10
11
if client_1["nombre_de_commandes"] == 0:
12
    print("Le client n'a pas fait de commandes.")
13
elif client_1["nombre_de_commandes"] == 1:
14
    print("Le client a fait 1 commande.")
15
else:
16
    print(f"Le client a fait {client_1['nombre_de_commandes']} commandes.")
17
18
# Ce code affiche : Le client a fait 4 commandes.

AttentionDeux points importants !

  • Remarquez la présence de guillemets simples ' dans les print() avec des f-strings. Si on utilise des guillemets doubles ", Python pense qu'on clos la chaîne de caractère du print() alors que ce n'est pas le cas ! Il faut donc utiliser deux types de guillemets différents.

  • Si la clé n'existe pas dans le dictionnaire, le programme s'arrêtera et Python affichera l'erreur KeyError suivante :

1
>>> client_1["age"]
2
Traceback (most recent call last):
3
  File "<stdin>", line 1, in <module>
4
KeyError: 'age'

Supprimer une paire

Enfin, pour supprimer une paire présente dans un dictionnaire, on utilisera l'instruction suivante :

1
del un_dictionnaire[cle]

Tout comme l'accès à un élément, sa suppression nécessite qu'il soit déjà présent dans le dictionnaire.

ExempleSupprimer

1
client_1 = {
2
    "nom": "Dupont",
3
    "prénom": "Jean",
4
    "nombre_de_commandes": 4,
5
    "est_abonné": False
6
}
7
8
del client_1["est_abonné"]
9
del client_1["nombre_de_commandes"]
10
11
print(client_1)
12
# {'nom': 'Dupont', 'prénom': 'Jean'}