logo oujood
🔍

Convertir une liste en dictionnaire en Python

Transformer une liste en dictionnaire est une opération courante en Python. Ce cours présente toutes les méthodes selon la structure de vos données de départ.

OUJOOD.COM

Convertir une liste en dictionnaire est une opération fréquente : vous récupérez des données sous forme de liste depuis une API, un fichier CSV ou une base de données, et vous avez besoin d'un accès rapide par clé plutôt que par index. Python propose plusieurs façons de faire cette conversion selon la structure de vos données de départ.

Ce cours couvre les cas les plus courants : liste de paires clé/valeur, deux listes séparées (clés et valeurs), liste simple avec index, et liste de dictionnaires à réindexer.

Cas 1 : liste de paires (tuples clé/valeur)

Si votre liste contient des tuples de deux éléments, dict() les convertit directement en dictionnaire. C'est la conversion la plus simple.

  📋 Copier le code

# Liste de tuples (clé, valeur)
paires = [("nom", "Alice"), ("age", 30), ("ville", "Paris")]

resultat = dict(paires)
print(resultat)
# Résultat : {'nom': 'Alice', 'age': 30, 'ville': 'Paris'}

# Fonctionne aussi avec une liste de listes à deux éléments
paires2 = [["Python", 1991], ["JavaScript", 1995], ["PHP", 1994]]
langages = dict(paires2)
print(langages)
# Résultat : {'Python': 1991, 'JavaScript': 1995, 'PHP': 1994}

Cas 2 : deux listes séparées avec zip()

Quand vos clés et vos valeurs sont dans deux listes distinctes, zip() les combine en paires, et dict() les convertit.

  📋 Copier le code

prenoms = ["Alice", "Bob", "Claire"]
scores  = [88, 72, 95]

# zip() combine les deux listes en paires
resultat = dict(zip(prenoms, scores))
print(resultat)
# Résultat : {'Alice': 88, 'Bob': 72, 'Claire': 95}

# Cas pratique : en-têtes CSV + valeurs d'une ligne
colonnes = ["nom", "age", "ville"]
ligne    = ["Alice", 30, "Paris"]

enregistrement = dict(zip(colonnes, ligne))
print(enregistrement)
# Résultat : {'nom': 'Alice', 'age': 30, 'ville': 'Paris'}

Cas 3 : liste simple avec enumerate() comme clés

Si vous voulez utiliser l'index de position comme clé, enumerate() génère des paires (index, valeur) que dict() convertit directement.

  📋 Copier le code

fruits = ["pomme", "poire", "cerise", "mangue"]

# Index (0, 1, 2...) comme clés
resultat = dict(enumerate(fruits))
print(resultat)
# Résultat : {0: 'pomme', 1: 'poire', 2: 'cerise', 3: 'mangue'}

# Démarrer la numérotation à 1
resultat2 = dict(enumerate(fruits, start=1))
print(resultat2)
# Résultat : {1: 'pomme', 2: 'poire', 3: 'cerise', 4: 'mangue'}

Cas 4 : compréhension de dictionnaire

La compréhension de dictionnaire est la méthode la plus flexible. Elle permet de transformer les clés ou les valeurs en cours de construction, d'appliquer des conditions, ou de calculer des valeurs.

  📋 Copier le code

mots = ["python", "javascript", "php", "ruby"]

# Mot → longueur du mot
longueurs = {mot: len(mot) for mot in mots}
print(longueurs)
# Résultat : {'python': 6, 'javascript': 10, 'php': 3, 'ruby': 4}

# Filtrer : garder uniquement les mots de plus de 4 lettres
longs = {mot: len(mot) for mot in mots if len(mot) > 4}
print(longs)
# Résultat : {'python': 6, 'javascript': 10}

# Nombre → son carré
nombres = [1, 2, 3, 4, 5]
carres = {n: n**2 for n in nombres}
print(carres)
# Résultat : {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

Cas 5 : liste de dictionnaires → dictionnaire indexé

Cas très courant avec les données d'API : vous avez une liste de dictionnaires et vous voulez les réindexer par un champ précis pour un accès rapide par identifiant.

  📋 Copier le code

utilisateurs = [
    {"id": 1, "nom": "Alice", "email": "alice@exemple.com"},
    {"id": 2, "nom": "Bob",   "email": "bob@exemple.com"},
    {"id": 3, "nom": "Claire","email": "claire@exemple.com"},
]

# Réindexer par id pour un accès direct
par_id = {u["id"]: u for u in utilisateurs}
print(par_id[2])
# Résultat : {'id': 2, 'nom': 'Bob', 'email': 'bob@exemple.com'}

# Réindexer par nom
par_nom = {u["nom"]: u["email"] for u in utilisateurs}
print(par_nom["Alice"])
# Résultat : alice@exemple.com

Cas 6 : initialiser un dictionnaire avec une valeur par défaut

dict.fromkeys() crée un dictionnaire depuis une liste de clés, toutes initialisées à la même valeur.

  📋 Copier le code

matieres = ["maths", "physique", "histoire", "anglais"]

# Toutes les matières initialisées à 0
notes = dict.fromkeys(matieres, 0)
print(notes)
# Résultat : {'maths': 0, 'physique': 0, 'histoire': 0, 'anglais': 0}

# Sans valeur par défaut → None
vide = dict.fromkeys(matieres)
print(vide)
# Résultat : {'maths': None, 'physique': None, 'histoire': None, 'anglais': None}

Récapitulatif des méthodes

Données de départMéthodeExemple
Liste de tuples (clé, val)dict(liste)dict([("a",1),("b",2)])
Deux listes séparéesdict(zip(clés, vals))dict(zip(noms, scores))
Liste simple → index comme clédict(enumerate(liste))dict(enumerate(fruits))
Transformation personnalisée{k: v for ...}{m: len(m) for m in mots}
Liste de dicts → réindexer{d["id"]: d for d in liste}Accès par identifiant
Clés connues, valeur par défautdict.fromkeys(liste, val)dict.fromkeys(matieres, 0)

Par carabde | Mis à jour le 21 avril 2026