🏁 Les dictionnaires Python
Remarque
Cette page rappelle rapidement les outils fondamentaux sur les dictionnaires Python.
Il ne s'agit pas d'un cours exhaustif sur ce thème.
Présentation
Un dictionnaire Python est une structure de données organisée sous forme de couples clé : valeur.
Contrairement aux listes dans lesquelles les valeurs sont identifiées par leur indice, dans un dictionnaire, une valeur est associée à une clé. Ces clés peuvent être des entiers, des chaînes de carcactères, des tuples...
Considérons par exemple le dictionnaire suivant qui contient les dates de naissances de Roméo et Juliette :
naissances= {
"Roméo": 20040517,
"Juliette": 20040417
}
"Roméo" et "Juliette" sont les clés du dictionnaire, 20040517 et 20040417 les valeurs associées.
Des clés immuables ?
Lors de la construction d'un dictionnaire, Python associe à chaque clé une valeur précise. Cette association repose sur le fait que la clé ne va pas évoluer au fil de l'exécution du programme. Si c'était le cas, l'association deviendrait caduque dès que la clé est modifiée.
Les clés des dictionnaires Python doivent donc être des objets non modifiables, immuables.
Retenons pour faire simple qu'une liste ne peut pas être utilisée comme clé d'un dictionnaire (car on peut la modifier au fil du programme).
Utilisation
On rappelle les opérations suivantes sur les dictionnaires :
Création
- Création d'un dictionnaire vide :
vide = { }
- Création d'un dictionnaire « à la main » :
animal = {"nom": "Oli","espèce": "Chat","jour": 10,"mois": "juin","année": 2020}
Lecture de valeur
Les valeurs sont identifiées par leur clé. On accède à une valeur en utilisant des crochets :
>>> repertoire = {"firstname": "Clarissa","lastname": "Dalloway","day": 14,"month": "May","year": 1925}
>>> repertoire["firstname"]
'Clarissa'
>>> repertoire["day"]
14
Modification de valeur
- On modifie ou l'on ajoute des valeurs avec une simple affectation :
>>> echiquier = {(0, 0): "Roi blanc", (5, 1): "Roi noir"}
>>> echiquier[(0, 0)] = None
>>> echiquier[(0, 1)] = "Roi blanc"
>>> echiquier
{(0, 0): None, (5, 1): 'Roi noir', (0, 1): 'Roi blanc'}
Exercices
QCM
On considère le dictionnaire ci-dessous décrivant une liste de courses :
courses = {
"pommes": 1.5,
"huile": "une bouteille d'huile d'olive",
"légumes" : {"poireaux": (1, "kg"), "potimarron": (5, "unité")}
}
Cochez la ou les bonnes réponses :
- Le dictionnaire
coursescontient cinq couples(clé: valeur) -
"huile"est une clé -
"légumes"est une valeur -
courses[1.5]vaut"pommes" - On accède à la quantité de poireaux en faisant
courses["poireaux"][0]
Le dictionnaire
coursesne contient que trois clés :"pommes","huile"et"légumes""huile"est une clé"légumes"est une clécourses[1.5]lève une erreur car1.5n'est pas une cléOn accède à la quantité de poireaux en faisant
courses["légumes"]["poireaux"][0]
Départements
On fournit ci-dessous le dictionnaire dont les clés sont les noms des départements français et les valeurs, la superficie en km² de chacun d'eux.
departements = {
"Ain": 5762,
"Aisne": 7362,
...
"Guyane": 83534,
"La Réunion": 2504,
}
Ces valeurs sont déjà chargées en mémoire et n'apparaissent donc pas dans l'éditeur.
Il est possible de parcourir les dictionnaires afin de créer des listes en compréhension. Par exemple [departements[nom] for nom in departements] renvoie la liste contenant la surface de chaque département.
Compléter le code ci-dessous afin d'effectuer les requêtes demandées. L'ordre des résultat au sein de chaque liste n'est pas important.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)