遍历字典以获取依赖关系(也许使用递归?)

问题描述 投票:1回答:1

这是我正在接收的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具有不同的复杂性,甚至还有更多的依赖性,但这是模板。谢谢!

python dictionary recursion dependencies traversal
1个回答
0
投票
这是您想要的吗?:

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

请注意,如果您具有循环依赖性或递归依赖性,则此算法将

无尽。

© www.soinside.com 2019 - 2024. All rights reserved.