Les dictionnaires
Un dictionnaire est une liste qui à chaque clé associe une valeur. Il prend la forme suivante :
L’indexation (présence d’une clé) facilite la recherche ou la modification d’une valeur. Contrairement aux listes, en raison du principe d’indexation, le temps nécessaire à la recherche d’un élément (avec l’opérateur in) ne dépend pas de la longueur de l’objet.
Voici les principales fonctions pour manipuler les dictionnaires :
Action | Fonction python |
---|---|
Création d’un dictionnaire | {} |
Accès aux clés du dictionnaire d | d.keys() |
Accès aux valeurs du dictionnaire d | d.values() |
Accès à la valeur associée à la clé “clé1” | d.get(“clé1”) |
Test présence de la clé “clé1” | d.has_key(“clé1”) ou “clé1” in d |
Copie réelle du dictionnaire d | d.copy() |
Suppression de tous les items du dictionnaire d | d.clear() |
Suppression de la clé “clé1” du dictionnaire d | d.pop(“clé1”) |
Suppression arbitraire d’un item (clé, valeur) du dictionnaire d | d.popitem() |
Exercice 1 : Créer un dictionnaire vide
d = {}
Exercice 2 : Ajouter votre nom, votre prénom, votre direction et votre service (DG, SSM, …)
d["nom"]="Djirig"
d["prenom"]="Julie"
d["direction"]="DMCSI"
d["service"]="SSP-Lab"
Exercice 3 : Faire un réelle copie de ce premier dictionnaire. Modifier le nom dans cette copie et afficher les deux dictionnaires. Que se serait-il passé si on n’avait pas fait une copie indépendante du dictionnaire avant de modifier le nom ?
d_copie=d.copy()
d_copie['nom']='nouveauNom'
Si on n’avait pas fait de copie à l’aide de la fonction copy mais simplement d_copie=d, les deux variables auraient pointé sur le même objet. La modification de d_copie aurait mécaniquement entrainé celle de d.
Exercice 4 : Créer un dictionnaire contenant votre premier dictionnaire et celui de votre voisin
On commence par créer le dictionnaire de notre voisin.
d2={}
d2["nom"]="Djirig"
d2["prenom"]="Julie"
d2["direction"]="DMCSI"
d2["service"]="SSP-Lab"
Puis, on crée le dictionnaire complet en chosissant comme clé, notre identifiant professionnel.
d_complet={"ev43ru":d, "test":d2}
Exercice 5 : Afficher ce nouveau dictionnaire
Le contenu de ce nouveau dictionnaire peut s’afficher simplement en indiquant le nom du dictionnaire. Toutefois, lorsque le dictionnaire est long, et notamment lorsqu’il provient de l’import d’un fichier json, le package pprint permet un affichage plus lisible du contenu du dictionnaire :
import pprint
pprint(d)
Exercice 6 : Afin de comprendre l’intérêt d’un dictionnaire et sa logique clé-valeur associée, comptez le nombre de fois où chaque lettre de l’alphabet est présente au sein du mot “Saperlipopette”.
mot="Saperlipopette"
dico={}
for i in mot.lower():
if i in dico.keys():
dico[i]+=1
else:
dico[i]=1
dico
Le dictionnaire, qui repose sur l’association clé-valeurs, est dans cet exemple pertinent car il est modifiable, exige qu’un seul parcours du mot et ne nécessite pas de connaître préalablement l’ensemble des lettres présentes dans le mot. Pour faciliter la réutilisation de ce code, il est préférable de créer une fonction.
mot="Saperlipopette"
def comptage(mot):
dico={}
for i in mot.lower():
if i in dico.keys():
dico[i]+=1
else:
dico[i]=1
return dico
comptage(mot)