Les Dictionnaires
1 ) Définition
ATTENTION : Les Dictionnaires sont des sortes de listes qui utilisent des clés ( c'est à dire des valeurs autres que des nombres ) plutot que des index pour repérer les items. Cette fois, pour différencier les listes des dictionnaires, on remplace les crochets par des accolades " { " et " } ". C'est aussi différent des tuples qui utilisent des parenthèses. exemple : dictionnaire = {"nom": "Turing", "prenom": "Alan", "date de naissance": "23/06/1912", "lieu de naissance": "Londres", "date de décès": "07/06/1954", "profession": "mathématicien et cryptologue" }. On remarque que chaque élément d'un dictionnaire est composé de 2 parties séparées par un " : ", on parle de paires "clé : valeur". Les éléments sont séparés par des virgules. 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, on peut utiliser la méthode suivante : ( tester le résultat obtenu dans thonny )
dictionnaire = {}
dictionnaire["nom"] = "Turing"
dictionnaire["prenom"] = "Alan"
dictionnaire["date de naissance"] = "23/06/1912"
dictionnaire["lieu de naissance"] = "Londres"
dictionnaire["date de décès"] = "07/06/1954"
dictionnaire["profession"] = "mathématicien et cryptologue"
print(dictionnaire)
On peut utiliser des tuples comme clés : exemple : ( tester le résultat obtenu dans thonny )
p = { }
p[(-1,1)] = 'A'
p[(2,5)] = 'B'
print(p)
exemple 1
Quel va être le résultat obtenu après l'exécution du programme ci-dessous ? (utilisez thonny pour vérifier votre réponse)
dictionnaire = {"nom": "Turing", "prenom": "Alan", "date de naissance": "23/06/1912", "lieu de naissance": "Londres", "date de décès": "07/06/1954", "profession": "mathématicien et cryptologue" }.
print(f'Hello, je suis {dictionnaire["prenom"]} {dictionnaire["nom"]}, je suis né le {dictionnaire["date de naissance"]} à {dictionnaire["lieu de naissance"]}.')
Il est possible d'ajouter un élément à un dictionnaire (les dictionnaires sont mutables)
exemple 2
Quel va être le résultat obtenu après l'exécution du programme ci-dessous ? (utilisez thonny pour vérifier votre réponse)
dictionnaire = {"nom": "Turing", "prenom": "Alan", "date de naissance": "23/06/1912", "lieu de naissance": "Londres", "date de décès": "07/06/1954", "profession": "mathématicien et cryptologue" }
print(f'Hello, je suis {dictionnaire["prenom"]} {dictionnaire["nom"]}, je suis né le {dictionnaire["date de naissance"]} à {dictionnaire["lieu de naissance"]}.')
dictionnaire["rôle"] = "décrypteur du code de l'énigma"
print(f'j ai été {dictionnaire["rôle"]}')
Dans cet exemple, le f fait aussi référence aux f-strings qui permettent un formatage particulier des expressions. Voir également ici.
L'instruction "del" permet de supprimer une paire "clé/valeur"exemple 3
Quel est le contenu du dictionnaire référencé par la variable "mes_fruits" après l'exécution du programme ci-dessous ? (utilisez thonny pour vérifier votre réponse)
mes_fruits = {"abricot": 3, "pomme": 4, "banane": 2}
del mes_fruits["pomme"]
print(mes_fruits)
Il est aussi possible de modifier une valeur :
exemple 4
Quel est le contenu du dictionnaire référencé par la variable "mes_fruits" après l'exécution du programme ci-dessous ? (utilisez thonny pour vérifier votre réponse)
mes_fruits = {"abricot": 3, "pomme": 4, "banane": 2}
mes_fruits["pomme"] = mes_fruits["pomme"] - 1
print(mes_fruits)
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.
exemple 5
Commençons par parcourir les clés à l'aide de la méthode "keys". Quel est le resultat du programme ci-dessous ? (utilisez thonny pour vérifier votre réponse)
mes_fruits = {"abricot": 3, "pomme": 4, "banane": 2}
print("liste des fruits :")
for fruit in mes_fruits.keys():
print(fruit)
exemple 6
La méthode values() permet de parcourir le dictionnaire selon les valeurs. Quel est le resultat du programme ci-dessous ? (utilisez thonny pour vérifier votre réponse)
mes_fruits = {"abricot": 3, "pomme": 4, "banane": 2}
for qte in mes_fruits.values():
print(qte)
exemple 7
Enfin, il est possible de parcourir un dictionnaire à la fois sur les clés et les valeurs en utilisant la méthode items().(utilisez thonny pour vérifier votre réponse)
mes_fruits = {"abricot": 3, "pomme": 4, "banane": 2}
print ("Stock de fruits :")
for fruit, quantite in mes_fruits.items():
print (f"{fruit} : {quantite}")
Vous avez sans doute remarqué l'utilisation de deux variables ("fruit" et "quantite") au niveau du "for...in"
2 ) Quelques opérations avec des dictionnaires
N.B. Il est possible de récupérer directement une valeur connaissant la clé associée en utilisant la méthode get :
exemple 1
infos = {
"nom": "Turing",
"prenom": "Alan",
"date de naissance": "23/06/1912"
}
print(infos.get("prenom"))
Quand la clé n'est pas trouvée, rien ne s'affiche ; pour afficher un message si la clé n'est pas trouvée, on peut ajouter un message après la requète get :
dans l'exemple ci dessus, mettez :print(infos.get("prenom","clé introuvable"))et print(infos.get("adresse","clé introuvable"))et regardez ce qui se passe !
Il est possible de vérifier directement l'existence d'une clé utilisant le mot clé in qui renvoir un booléen dont la valeur est "True" si la clé est présente :
exemple 2
infos = {"nom": "Turing","prenom": "Alan","date de naissance": "23/06/1912"}
if "age" in infos:
print(infos.get("age"))
else :
print(infos.get("date de naissance"))
Quand la taille du dictionnaire est importante, on peut utilser la méthode items pour récuperer les couples clés et valeurs :
exemple 3
infos = {
"nom": "Turing",
"prenom": "Alan",
"date de naissance": "23/06/1912",
"lieu de naissance": "Londres",
"date de décès": "07/06/1954",
"profession": "mathématicien et cryptologue"
}
for cle,valeur in infos.items():
print (cle,":",valeur)