反转非唯一字典

2023-11-30

我有一本字典,需要根据非唯一值进行反转和分组,该字典根据现有的最佳答案而失败。

>>> graph = { 'a': ['car','red'], 'b': ['car','blue'] }
>>> inv_map = {}
>>> for k,v in graph.items():
        inv_map[v] = inv_map.get(v,[])
        inv_map[v].append(k)

TypeError: unhashable type: 'list'

>>> isinstance(graph, dict)
True

建议?


由于值是列表,因此您需要迭代这些列表来累积键:

from collections import defaultdict
inv_map = defaultdict(list)

for k, vs in graph.items():
    for v in vs:
        inv_map[v].append(k)

inv_map.default_factory = None  # quack like a normal dict
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

反转非唯一字典 的相关文章