我有一个以下形式的字典:
基本上,
dict = {
"a" : {"a1" : 1},
"b" : {"a2" : 1, "a3" : 2},
"c" : {"a2" : 3, "a4" : 3}
}
我需要反向索引字典,格式如下:
inverseDict = {
"a1" : {"a" : 1},
"a2" : {"b" : 1, "c" : 3},
"a3" : {"b" : 2},
"a4" : {"c" : 3}
}
基本上,
inverseDict = {dict.value.key : { dict.key : dict.value.value}}
因此,基本上我需要将值的键作为键,将键作为值的键,同时合并重复的新键的结果等。
我尝试过
ks = dict.keys()
vals = dict.values()
ks2 = vals.keys()
vals2 = vals.values()
如果这有任何意义的话
但是我遇到了一个错误
'dict_values' object has no attribute 'keys'
据我所知,这是因为dict.values() .keys() .items()返回的是“视图”,而不是实际元素本身,但我不知道如何解决这个问题。
另外,是否有更有效的解决方案?因为我的实际字典相当大(约10k个键),生成的反向字典也会很大(> 3k个键)。
dict
进行赋值。这样会导致遮盖dict
内置对象。 - r.ookdict
的实际名称,只是一个“虚拟”的名称。但是,我明白你的意思。 - George