我想按级别值嵌套dict / array。该词典已经排序,但只是一维。
看起来像这样:
tables = {
1: {
'level': 1
},
2: {
'level': 2
},
3: {
'level': 3
},
4: {
'level': 3
},
5: {
'level': 2
},
6: {
'level': 3
}
}
如果下一项的等级值高于前一项,则该项应嵌套在前一项中。例如,ITEM 1的级别为1,ITEM 2的级别为2,因此ITEM 2将进入ITEM 1。
它应该是这样的:
tables = {
1: {
'level': 1,
'tables': {
2: {
'level': 2,
'tables': {
3: {
'level': 3,
},
4: {
'level': 3
}
}
},
5: {
'level': 2,
'tables': {
6: {
'level': 3,
}
}
}
}
}
}
答案 0 :(得分:0)
这是经典的递归练习:
def get_next_level(level):
result = {}
result[level] = {'level': level}
if level > max(tables.keys()):
return None
next_level = get_next_level(level+1)
if next_level is not None:
result[level].update({'tables': next_level})
return result
解决方案简短易行。你应该像这样开始计算:
res_table = {}
res_table[1] = {'level': 1}
res_table[1].update({'tables': get_next_level(2)})