递归的python代码
时间: 2023-07-23 18:35:03 浏览: 75
在 Python 中进行递归查询可以使用函数递归调用来实现。以下是一个示例查询,假设我们有一个名为 employee 的列表,其中包含员工的信息,每个员工都有一个 ID 和上级的 ID:
```
def get_employee_hierarchy(employee_list, employee_id, level=1):
employee = next((e for e in employee_list if e['id'] == employee_id), None)
if not employee:
return []
employee['level'] = level
subordinates = [get_employee_hierarchy(employee_list, e['id'], level + 1)
for e in employee_list if e['manager_id'] == employee_id]
return [employee] + subordinates
```
在上面的函数中,我们首先查找给定 ID 的员工,并将其级别设置为当前级别。然后我们递归调用函数来查找该员工的所有下属员工,并将它们添加到一个子列表中。最后我们返回包含该员工及其所有下属员工的列表。
你可以使用以下方式调用该函数:
```
employee_list = [
{'id': 1, 'name': 'Alice', 'manager_id': None},
{'id': 2, 'name': 'Bob', 'manager_id': 1},
{'id': 3, 'name': 'Charlie', 'manager_id': 2},
{'id': 4, 'name': 'David', 'manager_id': 2},
{'id': 5, 'name': 'Eve', 'manager_id': 1},
{'id': 6, 'name': 'Frank', 'manager_id': 5},
]
hierarchy = get_employee_hierarchy(employee_list, 1)
print(hierarchy)
```
在上面的示例中,我们传递了一个包含员工信息的列表和起始员工的 ID,然后打印出该员工及其所有下属员工的列表。
阅读全文