Représentation des données : Les Dictionnaires
Contenue : Notions introduites : le type dictionnaire Compétences : Construire une entrée de dictionnaire, savoir itérer sur es élèments d'un dictionnaire, connaître les méthodes.
Le programme
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 tulle de nombre...
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"
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
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.
