Présentation et utilisation
Définition : Dictionnaire
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 :
clés | valeurs |
---|---|
ma_cle_1 | ma_valeur_1 |
ma_cle_2 | ma_valeur_2 |
ma_cle_3 | ma_valeur_3 |
Syntaxe : En Python
En Python, on utilise la syntaxe suivante :
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 :
mon_dictionnaire = {
"ma_cle_1": "ma_valeur_1",
"ma_cle_2": "ma_valeur_2",
"ma_cle_3": "ma_valeur_3"
}
Exemple : Informations 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 :
client_1 = {
"nom": "Dupont",
"prénom": "Jean",
"nombre_de_commandes": 4,
"est_abonné": False
}
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.
Attention : Unicité des clés
Les clés présentes dans un dictionnaire doivent êtres toutes uniques !
Pourtant, le code suivant ne renvoie pas d'erreur :
mon_dico = {
"nom": "Dupont",
"prenom": "Jean",
"nom": "Dupond"
}
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.
print(mon_dico)
# {'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 :
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é.
Exemple : Ajouter et modifier
client_1 = {
"nom": "Dupont",
"prénom": "Jean",
"nombre_de_commandes": 4,
"est_abonné": False
}
client_1["naissance"] = 1967
client_1["nombre_de_commandes"] += 1 # Fonctionne comme les entiers ! Permet d'incrémenter la valeur de 1.
print(client_1)
# {'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.
cle in un_dictionnaire
Exemple : Rechercher
On peut ensuite récupérer ce booléen pour l'afficher ou pour réaliser un test avec un if
par exemple :
client_1 = {
"nom": "Dupont",
"prénom": "Jean",
"nombre_de_commandes": 4,
"est_abonné": False
}
if "nom" in client_1:
print("Le client a un nom.")
else:
print("Le client n'a pas de nom.")
# 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 :
un_dictionnaire[cle]
Exemple : Consulter
client_1 = {
"nom": "Dupont",
"prénom": "Jean",
"nombre_de_commandes": 4,
"est_abonné": False
}
print(f"Le client se nomme {client_1['nom']} {client_1['prénom']}.")
# Le client se nomme Dupont Jean.
if client_1["nombre_de_commandes"] == 0:
print("Le client n'a pas fait de commandes.")
elif client_1["nombre_de_commandes"] == 1:
print("Le client a fait 1 commande.")
else:
print(f"Le client a fait {client_1['nombre_de_commandes']} commandes.")
# Ce code affiche : Le client a fait 4 commandes.
Attention : Deux points importants !
Remarquez la présence de guillemets simples
'
dans lesprint()
avec des f-strings. Si on utilise des guillemets doubles"
, Python pense qu'on clos la chaîne de caractère duprint()
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 :
>>> client_1["age"]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'age'
Supprimer une paire
Enfin, pour supprimer une paire présente dans un dictionnaire, on utilisera l'instruction suivante :
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.
Exemple : Supprimer
client_1 = {
"nom": "Dupont",
"prénom": "Jean",
"nombre_de_commandes": 4,
"est_abonné": False
}
del client_1["est_abonné"]
del client_1["nombre_de_commandes"]
print(client_1)
# {'nom': 'Dupont', 'prénom': 'Jean'}