递归给树形数据每一层级加键值对
时间: 2024-04-30 11:21:42 浏览: 80
php 无限分类 树形数据格式化代码
对于树形数据的每一个节点,我们可以递归地遍历其子节点,并为其每一层级添加指定的键值对。
具体实现方法如下:
```python
def add_key_value(tree, key, value):
# 如果当前节点是叶子节点,则直接在其上添加键值对
if not tree.get("children"):
tree[key] = value
# 否则递归遍历子节点,并为每一层级添加键值对
else:
for child in tree["children"]:
add_key_value(child, key, value)
child[key] = value
```
其中,`tree` 是树形数据的根节点,`key` 和 `value` 分别代表要添加的键和值。该函数首先判断当前节点是否为叶子节点,如果是,则直接在其上添加键值对;否则,递归遍历其子节点,并为每一层级添加键值对。
需要注意的是,由于 Python 的函数参数传递是按引用传递的,因此在递归调用时,子节点的修改也会影响到父节点。因此,在遍历子节点之前,需要先为其添加键值对。
阅读全文