使用列表值反转字典
反转字典涉及创建一个新字典,其中交换原始字典的键和值。当原始字典包含列表值时,由于 Python 无法对列表进行哈希处理,因此会带来挑战。
使用元组作为元组键
解决此问题的一种方法是将列表值转换为元组。元组是不可变的并且可以进行哈希处理,从而允许它们充当字典中的键。
考虑以下代码:
<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>
此代码为每个唯一的组合创建一个新键原始键和值。然后用反转的键值对填充 inverted_index 字典。
使用集合作为唯一值
或者,您可以使用集合来处理反转中的重复值字典。集合是唯一元素的无序集合。
<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>
此代码为每个原始键创建一组唯一值。然后用反向键值对填充 inverted_index 字典,其中值是唯一原始键的集合。
以上是如何用列表值反转字典?的详细内容。更多信息请关注PHP中文网其他相关文章!