Maison > Article > développement back-end > Comment inverser un dictionnaire avec des valeurs de liste ?
Votre objectif est d'inverser un dictionnaire (index) avec des valeurs de liste de telle sorte que le dictionnaire résultant (inverse) ait des valeurs en double fusionnées dans une clé avec les clés d'origine comme valeurs.
La fonction fournie, invert_dict, échoue lorsqu'elle rencontre des valeurs de liste en raison de la nature non hachable des listes. Pour résoudre ce problème, envisagez la solution suivante :
<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 (index), accédant à chaque clé (k) et valeur (v). Pour chaque valeur de v (qui est une liste), il ajoute la clé associée à une liste du dictionnaire inverse à l'aide de la méthode setdefault. La méthode crée une nouvelle entrée pour chaque valeur unique dans v et ajoute la clé à la liste associée.
En conséquence, le dictionnaire inverse contiendra la structure inversée souhaitée, chaque valeur étant une liste de clés originales où cette valeur apparaît.
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!