我发现自己需要一些帮助,我正在尝试将字典列表(你会看到)转换为某种树/层次结构。我所要做的就是深度参数列表的当前顺序(这是正确的)。
functions = [
{'depth': 0, 'line': 3, 'type': 'class', 'name': 'General(object)'},
{'depth': 1, 'line': 4, 'type': 'def', 'name': '__init__(self, someargs)'},
{'depth': 2, 'line': 5, 'type': 'def', 'name': 'whenCall(self)'},
{'depth': 1, 'line': 9, 'type': 'def', 'name': 'findthis(self)'},
{'depth': 1, 'line': 12, 'type': 'def', 'name': 'find_multi(self)'},
{'depth': 0, 'line': 15, 'type': 'def', 'name': 'this()'},
{'depth': 0, 'line': 19, 'type': 'def', 'name': 'that(a,b,c)'},
{'depth': 1, 'line': 20, 'type': 'def', 'name': 'private()'}
]
我正在考虑让结果看起来像以下层次结构:
functions_hir = [{
'value': {'depth': 0, 'line': 3, 'type': 'class', 'name': 'General(object)'},
'children': [{
'value': {'depth': 1, 'line': 4, 'type': 'def', 'name': '__init__(self, someargs)'},
'children': [{
'value': {'depth': 2, 'line': 5, 'type': 'def', 'name': 'whenCall(self)'},
'children': []
}]
},{
'value': {'depth': 1, 'line': 9, 'type': 'def', 'name': 'findthis(self)'},
'children': []
},{
'value': {'depth': 1, 'line': 12, 'type': 'def', 'name': 'find_multi(self)'},
'children': []
}]
},{
'value': {'depth': 0, 'line': 15, 'type': 'def', 'name': 'this()'},
'children': []
},{
'value': {'depth': 0, 'line': 19, 'type': 'def', 'name': 'that(a,b,c)'},
'children': [{
'value': {'depth': 1, 'line': 20, 'type': 'def', 'name': 'private()'},
'children': []
}]
}]
现在对我来说迭代/递归它很简单。但是我没有任何运气从我的列表中生成这样的层次结构(我猜我什至没有接近)..而且我实际上不知道从哪里开始..希望有人能帮助我!