python3
有一张父子关系表
用org_id 找到对应的 org_parent_id,找到后把值在返回Org_id去找,如果org_id的type=X则退出循环,否则一直找到最后一级
例如: org_id = 1
最后的展示的结果就是 org_id = 1, org_parent_id = 11
如果 org_id = 3
最后的展示结果就是:org_id = 3, org_parent_id = 14
该如何实现?初学者提问。
【以下回答由 GPT 生成】
对于这个问题,可以使用递归函数来实现。
步骤如下:
下面是一个Python代码示例:
def find_org(org_id):
# 查询数据库,根据org_id找到对应的org_parent_id
org_parent_id = query_database(org_id)
# 判断org_parent_id的type是否为X
if org_parent_id is None or get_type(org_parent_id) == 'X':
# 如果是,则返回org_id和org_parent_id
return org_id, org_parent_id
else:
# 如果不是,则调用递归函数,以org_parent_id作为参数再次调用函数
return find_org(org_parent_id)
# 调用递归函数
result = find_org(1)
print("org_id: ", result[0])
print("org_parent_id: ", result[1])
请注意,上面的代码示例中的一些函数(如query_database和get_type)是假定已经存在的函数,你需要根据实际情况来实现这些函数。
希望以上解决方案对你有帮助。如果你有任何问题,请随时向我提问。
递归去找,类似这样
def find_org(org_id):
org_info = org_data.get(org_id)
if not org_info:
return None # org_id不存在于org_data中,返回None表示未找到
org_parent_id = org_info['org_parent_id']
org_type = org_info['type']
if org_type == 'X':
return (org_id, org_parent_id) # 如果找到最后一级,返回结果
return find_org(org_parent_id) # 递归查找下一级的org_parent_id