编写一个求阶层的函数用python
时间: 2024-10-09 17:05:23 浏览: 30
在Python中,我们可以创建一个递归函数来计算树形结构中节点的层级。这里有一个简单的例子,假设我们有一个列表表示树的层次结构,其中每个元素是一个列表,包含当前层的节点和下一层的节点:
```python
def get_level(node_list, level=0):
"""
返回给定节点列表的层级信息
:param node_list: 树形结构的列表,例如:[[1, [2, [3], 4]], [5]]
:param level: 当前层级,默认值为0
:return: 每个节点及其层级的字典,如 {1: 0, 2: 1, 3: 1, 4: 1, 5: 0}
"""
result = {}
for i, sub_list in enumerate(node_list):
if isinstance(sub_list, list): # 如果子项是另一个列表,说明有下一层
sub_result = get_level(sub_list, level + 1) # 递归获取下一层的数据
result.update({k: v + 1 for k, v in sub_result.items()})
else: # 如果子项不是列表,那就是一个叶子节点
result[sub_list] = level
return result
# 示例
tree = [[1, [2, [3], 4]], [5]]
node_levels = get_level(tree)
print(node_levels) # 输出:{1: 0, 2: 1, 3: 1, 4: 1, 5: 0}
```
这个函数会遍历整个输入列表,如果遇到嵌套的子列表,就递归地计算其内部节点的层级,并将结果合并到总结果中。
阅读全文