Dictionnaires imbriqués et compréhension de dictionnaire

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"
  }
}
Tableau 10.8
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
Tableau 10.9

Concepts en pratique

Structure d'un dictionnaire imbriqué

1.
Qu'est-ce qu'un dictionnaire imbriqué en Python ?
  1. Un dictionnaire qui ne contient que des entiers comme clés et valeurs.
  2. Un dictionnaire qui contient un autre dictionnaire comme valeur.
  3. Un dictionnaire qui ne contient que des chaînes de caractères comme clés et valeurs.
  4. Un dictionnaire qui ne contient que des listes comme clés et valeurs.
2.
Comment peut-on accéder à une valeur dans un dictionnaire imbriqué en Python ?
  1. en utilisant la clé du dictionnaire externe
  2. en utilisant la clé du dictionnaire interne
  3. En utilisant à la fois les clés des dictionnaires externe et interne
3.
Quelle est la syntaxe pour créer un dictionnaire imbriqué en Python ?
  1. {key: value}
  2. {key1: {key2: value}}
  3. {key: {value: key2}}

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}

Faites le point

Carrés de nombres

Concepts en pratique

Compréhension de dictionnaire

4.
Quelle est la sortie du code suivant ?
numbers = [1, 2, 3, 4, 5]
my_dict = {x: x**2 for x in numbers if x % 2 == 0}
print(my_dict)
  1. {1: 1, 3: 9, 5: 25}
  2. {2: 4, 4: 16}
  3. {1: 2, 2: 4, 3: 6, 4: 8, 5: 10}
5.
Quelle est la sortie de la compréhension de dictionnaire suivante ?
names = ["Alice ", "Bob ", "Charlie "]
name_lengths = {name: len(name) for name in names}
print(name_lengths)
  1. { "Alice ": 5, "Bob ": 3, "Charlie ": 7}
  2. {5: "Alice ", 3: "Bob ", 7: "Charlie "}
  3. { "A ": 5, "B ": 3, "C ": 7}
6.

Quelle est la sortie de la compréhension de dictionnaire suivante ?

my_dict = {i: i**2 for i in range(4)}
print(my_dict)
  1. {0: 0, 1: 1, 2: 4, 3: 9}
  2. {0: 0, 1: 1, 2: 4}
  3. {1: 1, 2: 4, 3: 9}

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