10.5 Dictionnaires imbriqués et compréhension de dictionnaire
Objectifs d'apprentissage
À la fin de cette section, vous devriez être en mesure de :
- Expliquer la structure des dictionnaires imbriqués.
- Utiliser la compréhension de dictionnaire pour créer un objet dictionnaire.
Dictionnaires imbriqués
Comme décrit précédemment, les dictionnaires Python sont un type de structure de données qui permet de stocker des données sous forme de paires clé-valeur. Les dictionnaires imbriqués (nested dictionaries) sont des dictionnaires qui sont stockés comme valeurs au sein d'un autre dictionnaire. Ex. : un organigramme dont les clés correspondent aux différents départements et les valeurs sont des dictionnaires d'employés dans un département donné. Pour stocker les informations des employés d'un département, on peut utiliser un dictionnaire dont les clés sont les identifiants des employés et les valeurs sont les noms des employés. Les tableaux ci-dessous présentent la structure de tels dictionnaires imbriqués et la manière d'accéder aux valeurs imbriquées.
Exemple 10.4
Définir des dictionnaires imbriqués et accéder aux éléments
| Définir des dictionnaires imbriqués |
|---|
company_org_chart = {
"Marketing": {
"ID234": "Jane Smith"
},
"Sales": {
"ID123": "Bob Johnson",
"ID122": "David Lee"
},
"Engineering": {
"ID303": "Radhika Potlapally",
"ID321": "Maryam Samimi"
}
}
|
| Accéder aux éléments d'un dictionnaire imbriqué |
|---|
print(company_org_chart["Sales"]["ID122"])
print(company_org_chart["Engineering"]["ID321"])
David Lee Maryam Samimi |
Concepts en pratique
Structure d'un dictionnaire imbriqué
Compréhension de dictionnaire
La compréhension de dictionnaire (dictionary comprehension) est un moyen concis et efficace de créer un dictionnaire en Python. Grâce à la compréhension de dictionnaire, les éléments d'un objet itérable sont transformés en paires clé-valeur. La syntaxe de la compréhension de dictionnaire est similaire à celle de la compréhension de liste, mais au lieu d'utiliser des crochets, on utilise des accolades pour définir un dictionnaire.
Voici une syntaxe générale pour la compréhension de dictionnaire :
Syntaxe de la compréhension de dictionnaire
{key_expression: value_expression for element in iterable}
Concepts en pratique
Compréhension de dictionnaire
À vous d'essayer
Prix des produits
Supposons que vous ayez un dictionnaire contenant les prix de produits, où les clés sont les noms des produits et les valeurs sont leurs prix respectifs en dollars. Écrivez un programme Python qui utilise la compréhension de dictionnaire pour créer un nouveau dictionnaire ayant les mêmes clés que le dictionnaire d'origine, mais dont les valeurs sont les prix en euros. Supposons que le taux de change soit de 1 dollar = 0,85 euro.
À vous d'essayer
Restructuration des données de l'entreprise
Supposons que vous ayez un dictionnaire contenant des informations sur les employés d'une entreprise. Chaque employé est identifié par un numéro d'identifiant, et ses informations comprennent son nom, son département et son salaire. Vous souhaitez créer un dictionnaire imbriqué qui regroupe les employés par département afin de voir facilement les noms et salaires de tous les employés de chaque département. Écrivez un programme Python qui, à partir d'un dictionnaire employees, produit en sortie un dictionnaire imbriqué, dept_employees, qui regroupe les employés par département.
Input:
employees = {
1001: {"name": "Alice", "department": "Engineering", "salary": 75000},
1002: {"name": "Bob", "department": "Sales", "salary": 50000},
1003: {"name": "Charlie", "department": "Engineering", "salary": 80000},
1004: {"name": "Dave", "department": "Marketing", "salary": 60000},
1005: {"name": "Eve", "department": "Sales", "salary": 55000}
}
Resulting dictionary:
{
"Engineering": {1001: {"name": "Alice", "salary": 75000}, 1003: {"name":
"Charlie", "salary": 80000}},
"Sales": {1002: {"name": "Bob", "salary": 50000}, 1005: {"name": "Eve",
"salary": 55000}},
"Marketing": {1004: {"name": "Dave", "salary": 60000}}
}