Home > Backend Development > Python Tutorial > How to Reverse a Dictionary with List Values?

How to Reverse a Dictionary with List Values?

Susan Sarandon
Release: 2024-10-29 18:55:02
Original
1056 people have browsed it

How to Reverse a Dictionary with List Values?

Reversing a Dictionary with List Values

Inverting a dictionary involves creating a new dictionary where the keys and values of the original dictionary are swapped. When the original dictionary contains list values, it presents challenges due to Python's inability to hash lists.

Using Tuples for Tuple Keys

One approach to address this issue is to convert the list values to tuples. Tuples are immutable and can be hashed, allowing them to serve as keys in a dictionary.

Consider the following code:

<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>
Copy after login

This code creates a new key for each unique combination of the original key and value. The inverted_index dictionary is then populated with the reversed key-value pairs.

Using Sets for Unique Values

Alternatively, you can use sets to handle duplicate values in the inverted dictionary. Sets are unordered collections of unique elements.

<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>
Copy after login

This code creates a set of unique values for each original key. The inverted_index dictionary is then populated with the reversed key-value pairs, where the values are sets of unique original keys.

The above is the detailed content of How to Reverse a Dictionary with List Values?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template