python列表嵌套字典递归修改父类的某个值

在做项目的时候遇到一个需求,有一个多层嵌套的树形结构,需要判断子类中的某个标记为True的时候同步更改父类的某个标记为True,一个简单的递归即可搞定!

数据结构

[
    {
        "id": 1,
        "parent": None,
        "expanded": False,
        "children": [
            {
                "id": 2,
                "parent": 1,
                "active": True,
                "children":[]
            }
        ]
    }
]

递归函数

def traverse(node):
    # 递归判断active并修改父类的expanded
    if 'children' in node and node['children']:
        for item in node['children']:
            if not item.get('active'):
                continue
            node['expanded'] = True
            self.traverse(item)

使用

nodes = "如例子所示的数据结构"
for node in nodes:
    trarverse(node)

print(nodes)

你可能感兴趣的:(python,前端,django)