Aller au contenu

Readme

Représentation des données : Les Dictionnaires


Contenu : Notions introduites : le type dictionnaire Compétences : Construire une entrée de dictionnaire, savoir itérer sur les éléments d'un dictionnaire, connaître les méthodes.

Le programme


bo_tuple

Apport de connaissances


Les dictionnaires Python 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.

Propriétés

Les dictionnaires sont des conteneurs, comme les listes et tuples, vus précédemment, et sont mutables : on peut donc modifier, ajouter ou supprimer du contenu.

Par contre, contrairement aux types de conteneurs précédémment étudiés, on ne peut pas accéder au contenu d'un dictionnaire à l'aide d'un indice : un dictionnaire n'est pas une séquence.

Si on peut bien modifier les valeurs dans un dictionnaire, chaque clé est unique et non mutable. Elle peut être une chaîne de caractères, un nombre, un tuple de nombres... On dit que les clés doivent être hashables : c'est pourquoi une liste, qui est mutable, ne peut pas servir de clé.

Enfin, les valeurs, quant à elles, peuvent être quelconques.


Création et accès

Pour initialiser un dictionnaire vide :

dico = {}
#ou
dico = dict()

Pour initialiser un dictionnaire avec des valeurs :

perso = {"prenom" : "Bilbo", "age" : 111}

On a donc la clé en premier, ici, prenom & age sont deux chaines de caractères faisant office de clés.

Accéder à une valeur d'un dictionnaire : on donne la clé à laquelle est associée la valeur recherchée (il faut donc que la clé existe)

perso ["prenom"]
'Bilbo'
perso["taille"]
KeyError "taille"

Pour éviter cette erreur lorsqu'on n'est pas sûr que la clé existe, on peut utiliser la méthode get() qui renvoie une valeur par défaut si la clé n'existe pas :

perso.get("prenom", "Inconnu")
'Bilbo'
perso.get("taille", 0)
0

Le premier argument est la clé recherchée, le second est la valeur renvoyée si la clé n'existe pas. Cette méthode est très utile pour éviter les erreurs KeyError.

Tout comme les listes, on peut utiliser la fonction len pour connaître le nombre de couples stockés.

len(perso)
2

Modification et parcours

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

perso ["taille"] = 112
perso 
{"prenom" : 'Bilbo', 'age' : 111, 'taille' : 112}

Pour modifier une valeur, c'est la même méthode : on ajoute un couple deja existant, et cela va écraser la valeur précédente :

perso["age"] = 131
perso
{'prenom' : 'Bilbo', 'age' : 131, 'taille' : 112}

Pour supprimer une clé et sa valeur associée, on peut utiliser la fonction del:

del perso["age"]

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

  • Itération sur les clés :
for cle in perso.keys():
  print (cle)
  • Itération sur les valeurs :
for val in perso.values():
  print(val)
  • Itération sur les couples clé / valeur:
for (cle, val) in perso.items():
  print(cle, "->", val)

Par défaut, on itère sur les clés.


À retenir

Opération Résultat
dico[k] renvoie la valeur associée à la clé k
x in dico.values() renvoie True si une valeur de dico est égale à x, False sinon
x not in dico.values() renvoie True si aucune valeur de dico n'est égale à x, False sinon
x in dico.keys() renvoie True si une clé de dico est égale à x, False sinon
dico[k] = v Modifie la valeur v associée à la clé k ou l'ajoute si elle n'existe pas
dico.get(k, v) Renvoie la valeur associé à la clé k. Si la clé k n'existe pas, renvoie la valeur v
del dico[k] Enlève du dictionnaire la clé k

Auteur : Florian Mathieu

Licence CC BY NC

Licence Creative Commons
Ce cours est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.