HOWTO · Python
Convertir un dictionnaire en liste en Python
Cet article explique comment convertir un dictionnaire en liste en Python.
Sur cette page
Un dictionnaire Python stocke des paires clé-valeur. « Convertir un dictionnaire en liste » peut désigner trois résultats différents : une liste de clés, une liste de valeurs ou une liste de tuples (key, value). Choisissez la forme dont vous avez besoin pour l’opération suivante, puis enveloppez la vue correspondante du dictionnaire dans list() pour obtenir une liste.
Choisir les éléments du dictionnaire à convertir
Utilisez keys() si la liste doit contenir les clés du dictionnaire, values() pour les valeurs et items() pour les paires clé-valeur. Les exemples ci-dessous utilisent le même dictionnaire. Exécutez chaque exemple Python pour examiner son résultat dans votre environnement. Les libellés textuels affichés dans les sorties restent en anglais, car les blocs de code et de sortie sont conservés à l’identique.
Convertir les clés et les valeurs d’un dictionnaire en listes
keys() et values() sont des méthodes de dictionnaire. En Python 3, elles fournissent des vues que list() transforme en listes. Les listes de clés et de valeurs suivent l’ordre d’itération du dictionnaire, et leurs éléments correspondent position par position.
Le code et les libellés ou sorties affichés dans cette section restent en anglais.
dictionary = {"a": "Apple", "b": "Banana", "c": "Cherries", "d": "Dragon Fruit"}
keys = list(dictionary.keys())
values = list(dictionary.values())
print(type(dictionary.keys()))
print(keys)
print(values)
list(dictionary) est une manière plus concise de créer une liste de clés. Utilisez list(dictionary.keys()) si le nom de la méthode rend l’intention plus claire. Si vous devez seulement parcourir les clés ou les valeurs, vous pouvez itérer directement sur la vue au lieu d’allouer une liste.
Convertir les éléments d’un dictionnaire en liste de tuples
Pour obtenir les paires clé-valeur, appelez items() et transmettez sa vue à list(). Chaque élément de la liste obtenue est un tuple de deux éléments : la clé, suivie de sa valeur.
Le code et les libellés ou sorties affichés dans cette section restent en anglais.
dictionary = {"a": "Apple", "b": "Banana", "c": "Cherries", "d": "Dragon Fruit"}
pairs = list(dictionary.items())
print(type(dictionary.items()))
print(pairs)
C’est l’approche directe lorsque vous avez besoin de paires. zip(dictionary.keys(), dictionary.values()) permet aussi d’associer les deux séquences du même dictionnaire, mais n’apporte rien ici et risque davantage d’être mal utilisé si les entrées proviennent de sources différentes. Pour les paires ordinaires d’un dictionnaire, préférez items().
Comprendre les vues de dictionnaire et l’ordre en Python 3
En Python 3, keys(), values() et items() renvoient des objets vue plutôt que des listes. Une vue est pratique pour l’itération ; list() crée une liste distincte lorsqu’une liste est nécessaire. L’inspection des types dans les exemples distingue une vue de la liste matérialisée.
Les exemples présentent les entrées dans l’ordre d’itération du dictionnaire, avec les clés et les valeurs alignées. Si vous avez besoin d’un ordre précis, indépendant de la façon dont le dictionnaire a été construit, effectuez un tri explicite, par exemple en triant les clés avant de les utiliser. Ne vous fiez pas à l’ordre affiché pour un autre dictionnaire au lieu de définir celui dont votre tâche a besoin.
Gérer la compatibilité avec Python 2
iteritems() est une méthode de dictionnaire héritée de Python 2. Ce n’est pas l’exemple Python 3 avec items() présenté plus haut. La syntaxe ancienne ci-dessous est uniquement illustrative ; ne l’exécutez pas comme du code Python 3 :
pairs = list(dictionary.iteritems()) (Python 2 uniquement ; syntaxe illustrative, pas un exemple Python 3.)
En Python 3, utilisez list(dictionary.items()). L’exemple ancien fourni dans l’article ne justifie pas d’affirmer un ordre ou un affichage de type particulier pour Python 2 ; ces détails sont donc omis. Si vous maintenez du code Python 2 ancien, vérifiez son comportement dans l’interpréteur et la base de code concernés au lieu de supposer que l’exemple Python 3 s’applique aussi.