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

 

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *