qq_22216471 2023-08-04 16:52 采纳率: 100%
浏览 5
已结题

初学者提问:python循环取值

python3
有一张父子关系表

img

用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
该如何实现?初学者提问。

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-04 18:26
    关注

    【以下回答由 GPT 生成】

    解决方案

    对于这个问题,可以使用递归函数来实现。

    步骤如下:

    1. 定义一个递归函数,传入一个org_id参数。
    2. 查询数据库,根据org_id找到对应的org_parent_id。
    3. 判断org_parent_id的type是否为X,如果是,则返回org_id和org_parent_id;否则,调用递归函数,以org_parent_id作为参数再次调用函数。
    4. 递归函数的终止条件是org_parent_id为None或者type为X。
    5. 最终返回找到的org_id和对应的org_parent_id。

    下面是一个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)是假定已经存在的函数,你需要根据实际情况来实现这些函数。

    希望以上解决方案对你有帮助。如果你有任何问题,请随时向我提问。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月15日
  • 已采纳回答 8月7日
  • 创建了问题 8月4日