Navigation rapide

Introduction

Les dictionnaires sont des sortes de « super listes » dans lesquels sont stockés des couples clé:valeur comme par exemple :

prenom : Ginette

L’avantages des dictionnaires est que l’on peut rappeler les valeurs par leur clé ce qui offre plus de clarté comparé aux listes.

Dans un dictionnaire les clés sont unique.

Là ou les dictionnaires deviennent très intéressants, c’est qu’une valeur d’un dictionnaire peut être un autre dictionnaires. On parle alors de dictionnaires imbriqués.

Travailler avec les dictionnaires

Créer un dictionnaire

La syntaxe pour créer un dictionnaire est :

my_dict = {key:value}

Ajouter plusieurs entrées simultanément :

my_dict = {key:value, key1:value1}

Récupérer une valeur dans un dictionnaire

La méthode est très similaire à celle utilisé pour les listes, à la différence prêt que l’on appel la valeur par sa clé, bien évidemment….

my_dict["key"]

Ce qui donne :

my_dict = {"key":"value", "key1":"value1"}
my_string = my_dict["key"]
print(my_string)

>>> value

Avec des dictionnaires imbriqués :

my_dict = {
			"jouet_1" : 
{"couleur" : "rouge", "forme" : "rond", "matière" : "bois"},
			"jouet_2" : 
{"couleur" : "bleu", "forme" : "carré", "matière" : "acier"},
			"jouet_3" : 
{"couleur" : "jaune", "forme" : "losange", "matière" : "plastique"}
		}
my_string = my_dict["jouet_2"]["forme"]
print(my_string)

ATTENTION avec cette méthode, si la clé n’existe pas, Python retourne une erreur qui fera planté le script.

Récupérer des valeur avec la méthode .get()

Afin d’éviter ça, on préférera la méthode .get() :

my_dict = {
			"jouet_1" : 
{"couleur" : "rouge", "forme" : "rond", "matière" : "bois"},
			"jouet_2" : 
{"couleur" : "bleu", "forme" : "carré", "matière" : "acier"},
			"jouet_3" : 
{"couleur" : "jaune", "forme" : "losange", "matière" : "plastique"}
		}
my_string = my_dict.get("jouet_1").get("couleur")
print(my_string)

>>> rouge

Modifier une valeur dans un dictionnaire

Pour modifier une valeur dans un dictionnaire, on appel tout simplement sa clé et on ré-assigne la nouvelle valeur, la syntaxe est :

my_dict = {"key":"value", "key1":"value1"}
my_dict["key"] = "Coucou"
print(my_dict["key"])

>>> Coucou

Ajouter une clé inexistante.

La syntaxe est tout simplement la même que pour modifier une valeur sur une clé existante :

my_dict = {"couleur " :  "rouge", "forme" : "rond", "matiere" : "bois"}
my_dict["prix"] = 50
print(my_dict)

>>> {'couleur ': 'rouge', 'forme': 'rond', 'matiere': 'bois', 'prix': 50}

Supprimer des clés

Pour supprimer des clé, on utilise del puis la clé :

my_dict = {"couleur" :  "rouge", "forme" : "rond", "matiere" : "bois"}
del my_dict["couleur"]
print(my_dict)

>>> {'forme': 'rond', 'matiere': 'bois'}

ATTENTION, si la clé n’est pas présente dans le dictionnaire, Python renverra une erreur. Pour supprimer une clé dans un dictionnaire on utilisera donc toujours une structure conditionnelle afin de garantir la robustesse des scripts :

my_dict = {"couleur" :  "rouge", "forme" : "rond", "matiere" : "bois"}
if "couleur" in my_dict:
	del my_dict["couleur"]
print(my_dict)

Boucler sur des dictionnaires

La méthode .keys()

Cette méthode permet de récupérer les clés dans un dictionnaire.

my_dict = {"couleur" :  "rouge", "forme" : "rond", "matiere" : "bois"}
for i in my_dict.keys():
	print(i)

>>> couleur
>>> forme
>>> matiere

Note : Cette méthode apporte juste un peu plus de clarté dans une boucle puisqu’elle reprend le comportement d’une boucle for classique sur un dictionnaire, c’est a dire que par default, un for boucle sur les clés d’un dictionnaire :

my_dict = {"couleur" :  "rouge", "forme" : "rond", "matiere" : "bois"}
for i in my_dict:
	print(i)

>>> couleur
>>> forme
>>> matiere

La méthode .values()

Cette méthode permet de récupérer les valeurs dans un dictionnaire.

my_dict = {"couleur" :  "rouge", "forme" : "rond", "matiere" : "bois"}
for i in my_dict.values():
	print(i)

>>> rouge
>>> rond
>>> bois

La méthode .items()

Cette méthode permet de récupérer des couples key:value :

my_dict = {"couleur" :  "rouge", "forme" : "rond", "matiere" : "bois"}
for cle, valeur in my_dict.items():
	print(cle, valeur)

>>> couleur rouge
>>> forme rond
>>> matiere bois

0 commentaire

Laisser un commentaire