Comment inverser les clés et les valeurs d'un dictionnaire en python ?

Created 23 novembre 2022 | Viewed 48 | by Benjamin Edit


Exemple de commet intervertir les clés et les valeurs d'un dictionnaire en python:

Echanger les clés et les valeurs d'un dictionnaire

Considérons le dictionnaire suivant :

d = {'A':1, 'B':2, 'C':3}

Pour itérer sur toutes les clés et valeurs nous pouvons utiliser items():

for x, y in d.items():
    print(x,y)

donne

A 1
B 2
C 3

Ensuite, pour créer un nouveau dictionnaire avec des clés et des valeurs inversées, une solution simple consiste à faire :

new_d = {y: x for x, y in d.items()}

donne

{1: 'A', 2: 'B', 3: 'C'}

Dictionnaires imbriqués

Autre exemple : le but est d'échanger des clés et des valeurs de dictionnaires à l'intérieur d'un autre dictionnaire :

d = { 'table 1':{'A':1, 'B':2, 'C':3}, 'table 2':{'D':4, 'E':5, 'F':6} }

Pour itérer sur toutes les clés et valeurs

for x, y in d.items():
    print(x,y)
    for xn, yn in y.items():
        print(xn,yn)

donne

table 1 {'A': 1, 'B': 2, 'C': 3}
A 1
B 2
C 3
table 2 {'D': 4, 'E': 5, 'F': 6}
D 4
E 5
F 6

alors

new_d = { x: { yn:xn for xn, yn in y.items() } for x, y in d.items()  }

donne

{'table 1': {1: 'A', 2: 'B', 3: 'C'}, 'table 2': {4: 'D', 5: 'E', 6: 'F'}}

Exemple d'utilisation avec une pandas dataframe

import pandas as pd

df = pd.DataFrame(data=['A','B','C'])

print(df)

donne

   0
0  A
1  B
2  C

d = {'A':100,'B':200,'C':300}

df.replace(d,inplace=True)

print(df)

donne

     0
0  100
1  200
2  300

new_d = {y: x for x, y in d.items()}

df.replace(new_d,inplace=True)

print(df)

donne

   0
0  A
1  B
2  C

Voir aussi

Liens Tags
Comment découper un dictionnaire (par exemple créer un sous-dictionnaire ou un échantillon) en python ? Python; Dictionnaire
Comment supprimer une clé d'un dictionnaire en python ? Python; Dictionnaire
Comment itérer uniquement sur les n premiers éléments d'un très grand dictionnaire en python ? Python; Dictionnaire
Comment vérifier si deux dictionnaires sont identiques (égaux) en python ? Python; Dictionnaire
Comment transformer une dataframe en dictionnaire avec pandas en python ? Python; Dictionnaire
Comment sauvegarder un dictionnaire dans un fichier json avec python ? Python; Dictionnaire
Comment trouver toutes les clés d'un dictionnaire avec une valeur donnée en python ? Python; Dictionnaire
Itérer sur les clés et valeurs d'un dictionnaire avec un compteur sous python Python; Dictionnaire
Comment vider un dictionnaire sous python Python; Dictionnaire
Obtenir une liste des clés d'un dictionnaire sous python Python; Dictionnaire
Comment copier un dictionnaire avec python ? Python; Dictionnaire
Comment vérifier si une clé existe dans un dictionnaire en python ? Python; Dictionnaire
Itérer (boucle) sur l'ensemble des clés et/ou valeurs d'un dictionnaire sous python Python; Dictionnaire
Déterminer le nombre de clés dans un dictionnaire sous python Python; Dictionnaire
Comment sélectionner aléatoirement les éléments d'une liste ou d'un dictionnaire en python 2 ? Python; Dictionnaire
"Print" une liste ou un dictionnaire sur plusieurs lignes sous python Python; Dictionnaire
Clé d'un dictionnaire avec plusieurs valeurs associées sous python Python; Dictionnaire
Diviser un dictionnaire python en deux ou plusieurs dictionnaires Python; Dictionnaire