在做项目的时候遇到一个需求,有一个多层嵌套的树形结构,需要判断子类中的某个标记为True的时候同步更改父类的某个标记为True,一个简单的递归即可搞定!
数据结构
[{"id": 1,"parent": None,"expanded": False,"children": [{"id": 2,"parent": 1,"active": True,"children":[]}]}
]
递归函数
def traverse(node):# 递归判断active并修改父类的expandedif 'children' in node and node['children']:for item in node['children']:if not item.get('active'):continuenode['expanded'] = Trueself.traverse(item)
使用
nodes = "如例子所示的数据结构"
for node in nodes:trarverse(node)print(nodes)