我想看看是否有人能提出解决我遇到的问题的想法。
我想尝试以某种方式翻转字典的子列表和列表。以下内容应该介绍我的目标。
olddict = {
'Cat1': {
'a': 0.9628883469409395,
'b': 0.2215033887861984,
'c': 0.011300919842312747,
'd': 0.006507874528179097,
'e': 0.0038535645472061657},
'Cat2': {'a': 0.9984095005831831,
'b': 0.7831176833025262,
'c': 0.2980289093298292,
'd': 0.04152023948978264,
'e': 0.9772639691714836},
'Cat3': {'a': 0.467005076142132,
'b': 1.0,
'c': 0.9810315430520035,
'd': 0.37869041728517233,
'e': 0.5812393632996296}}
像这样:
newdict = {
'a': {
'Cat1': 0.9628883469409395,
'Cat2': 0.9984095005831831,
'Cat3': 0.467005076142132},
'b': {
'Cat1': 0.2215033887861984,
'Cat2': 0.7831176833025262,
'Cat3': 1.0},
'c': {
'Cat1': 0.011300919842312747,
'Cat2': 0.2980289093298292,
'Cat3': 0.9810315430520035},
'd': {
'Cat1': 0.9628883469409395,
'Cat2': 0.04152023948978264,
'Cat3': 0.37869041728517233},
'e': {
'Cat1': 0.0038535645472061657,
'Cat2': 0.9772639691714836,
'Cat3': 0.5812393632996296}}
有了这个,我就可以创建新词典的总体布局。但是,我也没有添加这些值。
newdict = {}
for key, value in olddict.items():
for string,v in value.items():
newdict.setdefault(string, []).append(key)
如果有任何帮助,我将不胜感激。提前致谢!
最佳答案
newdict = defaultdict(dict)
for cat, letters in olddict.items():
for letter, value in letters.items():
newdict[letter][cat] = value
关于python - 以键和值作为子列表的反转字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57397707/