Solutions pratiques et exemples
Inversion d'un dictionnaire avec des valeurs uniques
Voici un exemple d'inversion d'un dictionnaire avec des valeurs uniques :
dictionnaire_original = {
"pomme": 1,
"banane": 2,
"cerise": 3
}
dictionnaire_inverse = {valeur: clef for clef, valeur in dictionnaire_original.items()}
print(dictionnaire_inverse) ## Sortie : {1: 'pomme', 2: 'banane', 3: 'cerise'}
Dans cet exemple, nous utilisons une compréhension de dictionnaire pour créer un nouveau dictionnaire où les clés et les valeurs sont échangées.
Inversion d'un dictionnaire avec des valeurs dupliquées
Lorsque nous traitons un dictionnaire qui a des valeurs dupliquées, nous pouvons utiliser un defaultdict
du module collections
pour gérer le processus d'inversion :
from collections import defaultdict
dictionnaire_original = {
"pomme": 1,
"banane": 2,
"cerise": 1,
"date": 2
}
dictionnaire_inverse = defaultdict(list)
for clef, valeur in dictionnaire_original.items():
dictionnaire_inverse[valeur].append(clef)
print(dict(dictionnaire_inverse)) ## Sortie : {1: ['pomme', 'cerise'], 2: ['banane', 'date']}
Dans cet exemple, nous créons un defaultdict
avec la valeur par défaut étant une liste vide. Lorsque nous parcourons le dictionnaire original, nous ajoutons les clés à la liste associée à la valeur correspondante dans le dictionnaire inversé.
Gestion des valeurs dupliquées avec un Counter
Une autre approche pour inverser un dictionnaire avec des valeurs dupliquées est d'utiliser la classe Counter
du module collections
. Cela nous permet de compter les occurrences de chaque valeur et de créer ensuite le dictionnaire inversé en conséquence.
from collections import Counter
dictionnaire_original = {
"pomme": 1,
"banane": 2,
"cherry": 1,
"date": 2
}
compteur = Counter(dictionnaire_original.values())
dictionnaire_inverse = {valeur: [clef for clef, v in dictionnaire_original.items() if v == valeur] for valeur in compteur}
print(dictionnaire_inverse) ## Sortie : {1: ['pomme', 'cherry'], 2: ['banane', 'date']}
Dans cet exemple, nous créons d'abord un objet Counter
pour compter les occurrences de chaque valeur dans le dictionnaire original. Ensuite, nous utilisons une compréhension de dictionnaire pour créer le dictionnaire inversé, où les clés sont les valeurs uniques du dictionnaire original et les valeurs sont des listes des clés correspondantes.
En comprenant ces solutions pratiques et exemples, vous serez en mesure d'inverser efficacement des dictionnaires avec des valeurs uniques et dupliquées dans vos projets Python.