le type dictionnaire

Python : les dictionnaires

Comme les listes, les dictionnaires permettent de "stocker" des données. Chaque élément d'un dictionnaire est composé de 2 parties, on parle de pairs "clé/valeur". Voici un exemple de dictionnaire :


mon_dico = {"nom": "Skywalker", "prenom": "luke", "date de naissance": "19 av. BY"}
                    

Comme vous pouvez le constater, nous utilisons des accolades {} pour définir le début et la fin du dictionnaire (alors que nous utilisons des crochets [] pour les listes et les parenthèses pour les tuples). Dans le dictionnaire ci-dessus, "nom", "prenom" et "date de naissance" sont des clés et "Skywalker", "luke" et "19 av. BY" sont des valeurs. La clé "nom" est associée à la valeur "Skywalker", la clé "prenom" est associée à la valeur "luke" et la clé "date de naissance" est associée à la valeur "19 av. BY". Les clés sont des chaînes de caractères ou des nombres. Les valeurs peuvent être des chaînes de caractères, des nombres, des booléens...

Pour créer un dictionnaire, il est aussi possible de procéder comme suit :


mon_dico = {}
mon_dico["nom"] = "Skywalker"
mon_dico["prenom"] = "luke"
mon_dico["date de naissance"] = "19 av. BY"
                        

Do it yourself

La variable "mon_dico" référence un dictionnaire. Il est possible d'afficher le contenu du dictionnaire référencé par la variable "mon_dico" en saisissant "mon_dico" dans la console. Faites le test après avoir exécuté le programme ci-dessous.


mon_dico = {"nom": "Skywalker", "prenom": "luke", "date de naissance": "19 av. BY"}
                        

Il est possible d'afficher la valeur associée à une clé :

Do it yourself

Soit le programme suivant :


mon_dico = {"nom": "Skywalker", "prenom": "luke", "date de naissance": "19 av. BY"}
print('Bonjour je suis ', mon_dico["prenom"], mon_dico["nom"], 'je suis né en ', mon_dico["date de naissance"])
                        

Quel est le résultat attendu après l'exécution de ce programme ? Vérifiez votre réponse.


Il est facile d'ajouter un élément à un dictionnaire (les dictionnaires sont mutables)

Do it yourself

Soit le programme suivant :


mon_dico = {"nom": "Skywalker", "prenom": "luke", "date de naissance": "19 av. BY"}
print('Bonjour je suis ', mon_dico["prenom"], mon_dico["nom"], 'je suis né le ', mon_dico["date de naissance"])
mon_dico['lieu naissance'] = "Polis Massa"
print ('à ', mon_dico["lieu naissance"])
                        

Quel est le résultat attendu après l'exécution de ce programme ? Vérifiez votre réponse.


L'instruction "del" permet du supprimer une paire "clé/valeur"

Do it yourself

Quel est le contenu du dictionnaire référencé par la variable "mes_films" après l'exécution du programme ci-dessous ? Vérifiez votre réponse à l'aide de la console.


mes_films = {"comedie": 3, "fantastique": 4, "romance": 2}
del mes_films["fantastique"]
                        

Il est possible de modifier une valeur :

Do it yourself

Soit le programme suivant :


mes_films = {"comedie": 3, "fantastique": 4, "romance": 2}
mes_films["fantastique"] = mes_films["fantastique"] - 1
                        

Quel est le contenu du dictionnaire référencé par la variable "mes_films" après l'exécution du programme ci-dessus ? Vérifiez votre réponse à l'aide de la console.


Il est possible de parcourir un dictionnaire à l'aide d'une boucle for. Ce parcours peut se faire selon les clés ou les valeurs. Commençons par parcourir les clés à l'aide de la méthode "keys"

Do it yourself

Tester le programme suivant :


mes_films = {"comedie": 3, "fantastique": 4, "romance": 2}
print("liste des films :")
for film in mes_films.keys():
    print(film)
                            

La méthode values() permet de parcourir le dictionnaire selon les valeurs

Do it yourself

Tester le programme suivant :


mes_films = {"comedie": 3, "fantastique": 4, "romance": 2}
for qte in mes_films.values():
    print(qte)
                            

Enfin, il est possible de parcourir un dictionnaire à la fois sur les clés et les valeurs en utilisant la méthode items().

Do it yourself

Tester le programme suivant :


mes_films = {"comedie": 3, "fantastique": 4, "romance": 2}
print ("Stock de films :")
for film, qte in mes_films.items():
    print (film,":",qte)
                            

Vous avez sans doute remarqué l'utilisation de deux variables ("film" et "qte") au niveau du "for...in"