Maison > développement back-end > Tutoriel Python > Comment inverser un dictionnaire avec des valeurs de liste en Python ?

Comment inverser un dictionnaire avec des valeurs de liste en Python ?

Patricia Arquette
Libérer: 2024-10-30 04:42:28
original
937 Les gens l'ont consulté

How to invert a dictionary with list values in Python?

Inverser des dictionnaires avec des valeurs de liste

La tâche à accomplir est d'inverser un dictionnaire dont les valeurs sont des listes, en le transformant en un dictionnaire où chaque La valeur du dictionnaire d'origine devient une clé dans le nouveau dictionnaire, avec une liste des clés d'origine comme valeur.

Étant donné le dictionnaire d'index suivant :

index = {
    'Testfil2.txt': ['nisse', 'hue', 'abe', 'pind'],
    'Testfil1.txt': ['hue', 'abe', 'tosse', 'svend']}
Copier après la connexion

Le dictionnaire inverse souhaité serait ressemble à ceci :

inverse = {
    'nisse': ['Testfil2.txt'],
    'hue': ['Testfil2.txt', 'Testfil1.txt'],
    'abe': ['Testfil2.txt', 'Testfil1.txt'],
    'pind': ['Testfil2.txt'], 
    'tosse': ['Testfil1.txt'],
    'svend': ['Testfil1.txt']}
Copier après la connexion

Voici une solution pythonique qui résout le problème des listes comme valeurs :

<code class="python">inverse = {}
for k, v in index.items():
    for x in v:
        inverse.setdefault(x, []).append(k)</code>
Copier après la connexion

Cette solution parcourt le dictionnaire d'origine, extrayant chaque paire clé-valeur et ses éléments. Il utilise la méthode setdefault() dans le dictionnaire inverse nouvellement créé, qui vérifie si la valeur (élément de la liste) est présente comme clé. Sinon, il crée une nouvelle clé avec une liste vide comme valeur. Si la clé existe déjà, elle ajoute la clé d'origine correspondante à la liste existante.

En parcourant tous les éléments du dictionnaire d'origine, cette solution crée avec succès le dictionnaire inversé avec les valeurs en double fusionnées et les clés d'origine comme valeurs. .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal