Convertir deux listes en dictionnaire en Python

  1. Utilisez zip() et dict() pour convertir deux listes en dictionnaire en Python
  2. Utilisation de la compréhension des dictionnaires pour convertir une liste en dictionnaire en Python
  3. Utiliser la boucle for pour convertir la liste en dictionnaire en Python

Ce tutoriel présente la manière de convertir deux listes en un dictionnaire en Python dans lequel une liste contient les clés du dictionnaire et l’autre les valeurs.

Utilisez zip() et dict() pour convertir deux listes en dictionnaire en Python

Python a une fonction intégrée appelée zip(), qui agrège les types de données itérables dans un tuple et le renvoie à l’appelant. La fonction dict() crée un dictionnaire à partir de la collection donnée.

key_list = ['name', 'age', 'address']
value_list = ['Johnny', '27', 'New York']

dict_from_list = dict(zip(key_list, value_list))
print(dict_from_list)

Dans cette solution, la conversion de listes en dictionnaires est possible en utilisant une seule ligne et deux fonctions.

Production :

{'name': 'Johnny', 'age': '27', 'address': 'New York'}

Utilisation de la compréhension des dictionnaires pour convertir une liste en dictionnaire en Python

La compréhension des dictionnaires est un moyen de raccourcir le temps d’initialisation de la création de dictionnaires en Python. La compréhension est un remplacement des boucles, qui nécessitent plusieurs lignes et variables. La compréhension fait le travail d’initialisation en une seule ligne.

Dans cette solution, la fonction zip() fournira toujours des valeurs dans le dictionnaire de compréhension. La compréhension renverra une paire clé-valeur de chaque élément consécutif dans la valeur de retour de la fonction zip() comme un dictionnaire.

key_list = ['name', 'age', 'address']
value_list = ['Johnny', '27', 'New York']

dict_from_list = {k: v for k, v in zip(key_list, value_list)}
print(dict_from_list)

Une autre façon de convertir des listes en dictionnaire est d’utiliser les index des listes et d’utiliser la fonction range() pour itérer sur les deux listes et utiliser la compréhension pour construire un dictionnaire.

Cela suppose que la longueur de la liste de clés et de la liste de valeurs est la même. Dans cet exemple, la longueur de la liste de clés sera la base de la plage.

key_list = ['name', 'age', 'address']
value_list = ['Johnny', '27', 'New York']

dict_from_list = {key_list[i]: value_list[i] for i in range(len(key_list))}
print(dict_from_list)

Ces deux solutions de compréhension fourniront le même résultat que l’exemple précédent.

La seule différence entre ces deux solutions est que l’on utilise la fonction zip() pour convertir la liste en un tuple. L’autre utilise la fonction range() pour itérer les deux listes en utilisant l’index courant afin de former un dictionnaire.

Production :

{'name': 'Johnny', 'age': '27', 'address': 'New York'}

Utiliser la boucle for pour convertir la liste en dictionnaire en Python

Le moyen le plus simple de réaliser la conversion d’une liste en dictionnaire est de la mettre en boucle. Bien que cette méthode soit la plus inefficace et la plus longue, c’est un bon début, surtout si vous êtes débutant et que vous voulez comprendre davantage la syntaxe de base de la programmation.

Avant de boucler, initialisez un dictionnaire vide. Ensuite, procédez à la conversion, qui nécessitera une boucle imbriquée ; la boucle externe itéra la liste des clés, tandis que la boucle interne itéra la liste des valeurs.

key_list = ['name', 'age', 'address']
value_list = ['Johnny', '27', 'New York']

dict_from_list = {}
for key in key_list:
  for value in value_list:
    dict_from_list[key] = value
    value_list.remove(value)
    break

print(dict_from_list)

Chaque fois qu’une paire clé-valeur est formée, elle supprime l’élément de valeur de la liste, de sorte que la clé suivante se voit attribuer la valeur suivante. Après la suppression, la boucle interne est interrompue pour passer à la clé suivante.

Une autre solution utilisant une boucle est d’utiliser range() pour utiliser l’index afin d’obtenir les paires clé et valeur, comme ce qui a été fait dans l’exemple avec la compréhension du dictionnaire.

key_list = ['name', 'age', 'address']
value_list = ['Johnny', '27', 'New York']

dict_from_list = {}
for i in range(len(key_list)):
  dict_from_list[key_list[i]] = value_list[i]

print(dict_from_list)

Les deux solutions produiront le même résultat :

{'name': 'Johnny', 'age': '27', 'address': 'New York'}

En résumé, la manière la plus efficace de convertir deux listes en dictionnaire est d’utiliser la fonction intégrée zip() pour convertir les deux listes en un tuple, puis de convertir le n-uplet en dictionnaire en utilisant dict().

L’utilisation de la compréhension de dictionnaire peut également convertir des listes en dictionnaire en utilisant soit zip() pour convertir les listes en tuple, soit range() et utiliser l’index des listes pour itérer et initialiser un dictionnaire.

Ces deux solutions sont meilleures que la solution naïve, qui utilise des boucles simples pour convertir les listes en un dictionnaire.

Article connexe - Python List

  • Liste des nombres de 1 à N en Python
  • Convertir une liste en minuscules en Python
  • Article connexe - Python Dictionary

  • Supprimer NaN de la liste en Python
  • Comment passer en boucle plusieurs listes en Python