这是我正在接收的json文件的类型:
{'n1': [5, 'number'],
'n2': [6, 'number'],
'm1': ['n1 x n2', 'n1 times n2'],
'm2': ['X - m1', 'subtract n1 times n2'],
'n3': [4, 'quarter'],
'n4': [8, 'number'],
'm3': ['n4 / n3', 'quarter of number n4'],
'm4': ['m2 = m3', 'obtain m3']}
我想要得到的是'm4',然后一直回溯,使得'm2 = m3'变为'X-5 * 6 = 8/4我认为这可能与递归有关,但实际上并没有任何经验。必须使用Python完成。
我收到的json具有不同的复杂性,甚至还有更多的依赖性,但这是模板。谢谢!
table = {
'n1': [5, 'number'],
'n2': [6, 'number'],
'm1': ['n1 x n2', 'n1 times n2'],
'm2': ['X - m1', 'subtract n1 times n2'],
'n3': [4, 'quarter'],
'n4': [8, 'number'],
'm3': ['n4 / n3', 'quarter of number n4'],
'm4': ['m2 = m3', 'obtain m3']
}
string = 'm4'
while True:
for key, (value, description) in table.items():
if key in string:
string = string.replace(key, str(value))
break
else:
break
print(string)
输出:
X - 5 x 6 = 8 / 4
请注意,如果您具有循环依赖性或递归依赖性,则此算法将无尽。