Les dictionnaires

Un dictionnaire est un conteneur, un objet pouvant en contenir d’autres (à l’instar des listes) : chaque élément (item) d’un dictionnaire, est constitué d’une valeur (value) et associé à une clef (key).

Les valeurs peuvent être de n’importe quel type.

Les clés doivent être définie dans un type de donnée immuable (immutable) : chaîne de caractères ou nombre, ou bien encore un tuple de ces types.

Exemple : le dictionnaire ci dessous possède 3 éléments, dont les clés sont des chaînes de caractères pour deux d’entre eux, et un entier pour l’autre.

 

Création d’un dictionnaire

On peut créer un dictionnaire vide :

D = {}

Ou bien créer un dictionnaire contenant déjà des éléments :

>>> D = {'clef1' : 1.56, 'a' : "Bonjour", 5 : 5}
>>> D
{'a': 'Bonjour', 'clef1': 1.56, 5: 5}

Remarque : à la différence des listes, un dictionnaire n’est pas ordonné. Lorsqu’on affiche un dictionnaire, l’ordre n’est pas forcément celui de la création.

Accéder aux éléments d’un dictionnaire

La syntaxe est proche de celle utilisée pour obtenir des éléments d’une liste :

>>> D['a']
'Bonjour'

Et comme pour les listes également, il est possible de modifier la valeur d’un élément :

>>> D['a'] = "Au revoir !"
>>> D
{'a': 'Au revoir !', 'clef1': 1.56, 5: 5}

On peut obtenir l’ensemble de ses clés avec la méthode .keys()  :

>>> D.keys()
dict_keys(['a', 'clef1', 5])

L’ensemble de ses valeurs avec la méthode .values() :

>>> D.values()
dict_values(['Au revoir !', 1.56, 5])

Et l’ensemble de ses éléments, sous la forme de tuples (clé, valeur), avec la méthode .items() :

>>> D.items()
dict_items([('a', 'Au revoir !'), ('clef1', 1.56), (5, 5)])

 

Tests sur les dictionnaires

Pour savoir si un dictionnaire possède un élément, on peut tester s’il possède une clé :

>>> 'a' in D.keys()
True

Mais il existe un expression plus simple :

>>> 'a' in D
True

Et on peut bien sûr utiliser le mot clé in pour d’autres types de tests :

>>> 3 in D.values()
False

 

Taille d’un dictionnaire

>>> len(D)
3

 

Ajout d’éléments

Et on peut ajouter des éléments directement :

>>> dico[421] = "Gagné !"
>>> dico
{'a': 'Au revoir !', 'clef1': 1.56, 5: 5, 421 : "Gagné !"}

La clé 421est automatiquement créée.

 

 

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'}

 

Activité

Créer par compréhension le dictionnaire {'a' : 10, 'b' : 20, 'c' : 30, ....., 'j' : 100}

Indice : utiliser la fonction chr()pour obtenir un caractère à partir de son code ascii.

 

Fusion de deux dictionnaires

On peut fusionner un dictionnaire avec un autre. On parle aussi de 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'}


 

Activités

É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.

Indice pour ne compter que les lettres, utiliser la fonction isalpha

Exemple : compterLettres("L'informatique, c'est fantastique !")→  {'L': 1, 'I': 3, 'N': 2, 'F': 2, 'O': 1, 'R': 1, 'M': 1, 'A': 3, 'T': 4, 'Q': 2, 'U': 2, 'E': 3, 'C': 1, 'S': 2}

 

 

 

Vous aimerez aussi...

Laisser un commentaire

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