Comment convertir un dictionnaire Python en liste
Maîtrisez votre utilisation des structures de données Python. Apprenez à convertir un dictionnaire en liste.
La manipulation des données est fréquente en programmation, en fonction du problème que vous souhaitez résoudre. Vous vous retrouverez souvent à convertir une structure de données en une autre. Certains types sont si similaires que la conversion entre eux est un processus simple.
En Python, transformer un dictionnaire en une liste imbriquée ou aplatie est une conversion populaire que vous vous retrouverez à effectuer.
Convertir un dictionnaire Python en liste à l'aide d'une boucle for
La boucle for vous donne plus de traction sur vos données tout en convertissant un dictionnaire Python en liste.
Par exemple, le code suivant convertit un dictionnaire en liste imbriquée :
myDictionary = {"A": "Python", "B": "JavaScript", "C": "Node"}
convertedList = []
for i in myDictionary:
convertedList.append([i, myDictionary[i]])
print(convertedList)
# Output: [['A', 'Python'], ['B', 'JavaScript'], ['C', 'Node']]
Le code ci-dessus insère chaque paire clé (i) et valeur (myDictionary[i]) dans des listes individuelles et les ajoute dans une liste vide.
C'est la même chose que d'écrire :
for key, value in myDictionary.items():
convertedList.append([key, value])
Vous pouvez également placer chaque paire dans un ensemble ou un tuple. Tout ce que vous avez à faire est de remplacer les accolades ([]) autour de la paire clé, valeur par des accolades ({}) ou des parenthèses. (()) en conséquence.
Vous pouvez également y parvenir en utilisant une boucle for avec la fonctionnalité de compréhension de liste de Python :
convertedList = [[i, myDictionary[i]] for i in myDictionary]
Fonction pour convertir un dictionnaire Python en une liste plate
Bien que les options de boucle for ci-dessus produisent une liste imbriquée, vous pouvez la déstructurer davantage en une liste simple si c'est ce que vous souhaitez.
La fonction suivante le fait :
def convertToStraightList(sampleDict):
flatList = []
for key, value in sampleDict.items():
flatList.extend([key, value])
return flatList
print(convertToStraightList(myDictionary))
# Output: ['A', 'Python', 'B', 'JavaScript', 'C', 'Node']
La fonction ci-dessus renvoie une liste aplatie et le concept est simple. La boucle ajoute chaque paire clé etvaleur à une liste que la fonction renvoie une fois terminée.
Utilisation des fonctions One-Liner intégrées
Les fonctions map et zip permettent des solutions Python sur une seule ligne à ce problème, avec des résultats différents. Elles peuvent être plus adaptées que la boucle for, selon votre problème, et elles sont certainement plus pratiques.
La fonction zip produit une liste imbriquée de tuples :
convertedList = list(zip(myDictionary.keys(), myDictionary.values()))
print(convertedList)
# Output: [('A', 'Python'), ('B', 'JavaScript'), ('C', 'Node')]
La fonction map, quant à elle, donne une liste de listes :
convertedList = list(map(list, myDictionary.items()))
print(convertedList)
# Output: [['A', 'Python'], ['B', 'JavaScript'], ['C', 'Node']]
Convertir entre les listes Python et les dictionnaires dans les deux sens
Ces différentes manières de convertir un dictionnaire en liste sont assez simples en Python. Ainsi, vous pouvez transformer un dictionnaire en liste, mais vous pouvez également faire le contraire en convertissant une liste Python en dictionnaire.