我有一本字典,需要根据非唯一值进行反转和分组,该字典根据现有的最佳答案而失败。
>>> 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(使用前将#替换为@)