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

Comment inverser un dictionnaire avec des valeurs de liste ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-29 18:55:021059parcourir

How to Reverse a Dictionary with List Values?

Inverser un dictionnaire avec des valeurs de liste

Inverser un dictionnaire implique de créer un nouveau dictionnaire dans lequel les clés et les valeurs du dictionnaire d'origine sont échangées. Lorsque le dictionnaire d'origine contient des valeurs de liste, il présente des défis en raison de l'incapacité de Python à hacher des listes.

Utilisation de tuples pour les clés de tuple

Une approche pour résoudre ce problème consiste à convertir les valeurs de la liste en tuples. Les tuples sont immuables et peuvent être hachés, ce qui leur permet de servir de clés dans un dictionnaire.

Considérez le code suivant :

<code class="python">inverted_index = {}
for key, values in index.items():
    for value in values:
        tuple_key = (key, value)
        inverted_index.setdefault(tuple_key, []).append(key)</code>

Ce code crée une nouvelle clé pour chaque combinaison unique du clé et valeur d'origine. Le dictionnaire inverted_index est ensuite renseigné avec les paires clé-valeur inversées.

Utilisation d'ensembles pour des valeurs uniques

Vous pouvez également utiliser des ensembles pour gérer les valeurs en double dans le dictionnaire inversé. dictionnaire. Les ensembles sont des collections non ordonnées d'éléments uniques.

<code class="python">inverted_index = {}
for key, values in index.items():
    unique_values = set(values)
    for value in unique_values:
        inverted_index.setdefault(value, set()).add(key)</code>

Ce code crée un ensemble de valeurs uniques pour chaque clé d'origine. Le dictionnaire inverted_index est ensuite rempli avec les paires clé-valeur inversées, où les valeurs sont des ensembles de clés originales uniques.

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!

Déclaration:
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