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']}
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']}
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>
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!