Exercices Structures de données Matrice vers dictionnaires
🎉

Bravo!

Avancé 🧠 Fondamentaux 30 XP 0 personnes ont réussi

Matrice vers dictionnaires

Dans beaucoup de situations réelles, tu recois des données sous forme de tableau (une liste de listes) avec une ligne d'en-tête. Par exemple, un fichier CSV chargé en mémoire :

données = [
['nom', 'age', 'ville'],
['Alice', '30', 'Paris'],
['Bob', '25', 'Lyon']
]

La première ligne contient les noms de colonnes. Les lignes suivantes contiennent les valeurs. C'est plus pratique de transformer ca en une liste de dictionnaires ou chaque dictionnaire représente une ligne avec les noms de colonnes comme clés.

La fonction zip() est parfaite pour ca. Elle associe les éléments de deux séquences par position :
list(zip(['a', 'b'], [1, 2])) donne [('a', 1), ('b', 2)]

Tu peux ensuite passer le résultat de zip() à dict() pour créer un dictionnaire :
dict(zip(['nom', 'age'], ['Alice', '30'])) donne {'nom': 'Alice', 'age': '30'}

Écris une fonction tableau_vers_dicos(tableau) qui prend une liste de listes (première ligne = en-têtes) et renvoie une liste de dictionnaires.

Exemple :
tableau_vers_dicos([['nom', 'age'], ['Alice', '30'], ['Bob', '25']]) renvoie [{'nom': 'Alice', 'age': '30'}, {'nom': 'Bob', 'age': '25'}]

Tests (4/5)

Cas normal
assert tableau_vers_dicos([['nom', 'age'], ['Alice', '30'], ['Bob', '25']]) == [{'nom': 'Alice', 'age': '30'}, {'nom': 'Bob', 'age': '25'}]
Une seule ligne de données
assert tableau_vers_dicos([['x', 'y'], ['1', '2']]) == [{'x': '1', 'y': '2'}]
Tableau vide
assert tableau_vers_dicos([]) == []
Que des en-têtes
assert tableau_vers_dicos([['a', 'b']]) == []

+ 0 tests cachés

Indices (3 disponibles)

solution.py