Les dictionnaires
Un dictionnaire est un objet pouvant en contenir d’autres (à l’instar des listes) : chaque objet d’un dictionnaire, appelé valeur (value), est associé à une clef (key), de type chaîne de caractère ou nombre, ou bien encore un tuple de ces types (c’est à dire un objet immuable).
A la différence des listes, un dictionnaire n’est pas ordonné :
>>> dico = {'clef1' : 1.56, 'a' : "Bonjour", 5 : 5} >>> dico {'a': 'Bonjour', 'clef1': 1.56, 5: 5} >>> dico.keys() dict_keys(['a', 'clef1', 5]) >>> dico.values() dict_values(['Bonjour', 1.56, 5]) >>> dico.items() dict_items([('a', 'Bonjour'), ('clef1', 1.56), (5, 5)])
Accéder aux éléments d’un dictionnaire
La syntaxe est proche de celle utilisée pour obtenir les éléments d’une liste :
>>> dico['a'] 'Bonjour'
Et comme pour les listes également, il est possible de modifier la valeur d’un élément :
>>> dico['a'] = "Au revoir !" >>> dico {'a': 'Au revoir !', 'clef1': 1.56, 5: 5}
Et on peut ajouter des éléments directement :
>>> dico[421] = "Gagné !" >>> dico {'a': 'Au revoir !', 'clef1': 1.56, 5: 5, 421 : "Gagné !"}
Et on peut supprimer des éléments directement :
>>> del dico['a'] >>> dico {'clef1': 1.56, 5: 5, 421 : "Gagné !"}
Et on peut vérifier l’existence d’une clé:
>>> '888' in dico False
Et on peut obtenir la valeur associée à une clé avec la méthode get().
Elle renvoie la valeur associée à la clé passée en premier paramètre ou, si elle n’existe pas, la valeur passée en second paramètre :
>>> dico.get(421) 'Gagné !' >>> dico.get(999,'pas possible') 'pas possible'
Créer un dictionnaire
par compréhension
Comme pour les listes, il est possible de construire un dictionnaire par compréhension :
>>> Simpson = ['Homer', 'Marge', 'Bart', 'Lisa'] >>> Famille = ['père', 'mère', 'fils', 'fille'] >>> Famille_Simpson = zip(Famille, Simpson) # zippage ! >>> Famille_Simpson = {clef: valeur for clef, valeur in Famille_Simpson} {'fils': 'Bart ', 'fille': 'Lisa ', 'mère': 'Marge ', 'père': 'Homer'}
Exercice :
- Créer par compréhension le dictionnaire d = {‘a’ : 10, ‘b’ : 20, ‘c’ : 30, …..}
par mise à jour
>>> Enfants_Simpson = {'fils': 'Bart', 'fille': 'Lisa', 'bébé': 'Maggie'} >>> Famille_Simpson.update(Enfants_Simpson) >>> Famille_Simpson {'fils': 'Bart', 'fille': 'Lisa', 'bébé': 'Maggie', 'mère': 'Marge', 'père': 'Homer'}
Exercice :
- Écrire une fonction compterLettres(texte) ayant pour argument une chaîne de caractères et qui renvoie un dictionnaire qui contient la fréquence de toutes les lettres de la chaîne entrée.
Dépôt de fichier réponse