【发布时间】:2014-08-22 09:33:11
【问题描述】:
我的输入字典为:-
classDict = {'G1': ['V1', 'G3', 'V2'],
'G2': ['G4', 'V3'],
'G3': ['V2'],
'G4': ['V3'],
'G5': ['G6'],
'G6': ['G2', 'G4', 'V3'],
'G7': ['reset']
}
我需要转换成:-
finalStructure = {'G1': {'value':['V1','V2'],
'group':'G3'},
'G2': {'value':'V3',
'group':'G4'},
'G3': {'value':'V2'},
'G4': {'value':'V3'},
'G5': {'group':'G6'},
'G6': {'group':['G2', 'G4'],
'value':'V3'},
'G7': {'value':'reset'}
}
这里的问题是字典中的值在某些地方也是键。我需要找到它们而不是将它们作为值添加到新字典中。这个问题背后的真正目的是创建平面类结构,其中 V1、V2 等是函数,G1、G2 等是类。如果一个类 G1 在其组中有另一个类 G3,那么它应该实例化该类。 请不要使用RE来区分'G'和'V'字符,因为它们只是假名,真实姓名完全不同。
【问题讨论】:
-
这不是代码编写服务;你尝试过什么,它到底有什么问题?
-
@jonrshape - 我试图通过多个 for 循环,在其中我将使用 for key in dict.keys() 的键与使用 for value in dict.values() 的不同值进行比较。但我被困在多个地方,无法思考。但是非常感谢您的建议。下次我也会写我的代码来解决这个问题。
-
@jonrsharpe 非常感谢这个建议。我真的应该用更好的方式来写它。
标签: python dictionary