递归循环遍历deps中的每个值

2024-04-24 04:31:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难循环遍历deps中的每个值..当前只能循环一次。下面是我的预期输出..有人能提供有关如何更改为循环以获得以下预期输出的输入吗?你知道吗

'''
EXPECTED OUTPUT:-
external_dep = {
    '253036': ['12345','34567'],
    '12345': [],
    '34567': ['99999']
    '99999': []
    }
'''
def  findexternaldep(num):
    if num == '253036':
        output =['12345','34567']
    if num == '12345':
        output = []
    if num == '34567':
        output = ['99999']
    if num == '99999':
        output = []
    return output

master_gerrit = ["253036"]
external_dep={}
for num in master_gerrit:
    deps=findexternaldep(num)
    #print deps
    external_dep[num] = deps
    #loop should be repeated for each value in the list deps
print external_dep

Tags: depsinmasterforoutputifdefnum
1条回答
网友
1楼 · 发布于 2024-04-24 04:31:40

目前没有递归。你需要一个递归调用的函数来代替循环。像这样:

external_dep={}
def handle_gerrit(num, external_dep):
    deps=findexternaldep(num)
    external_dep[num] = deps
    for num in deps:
        handle_gerrit(num, external_dep)

handle_gerrit("253036", external_dep)
print external_dep

相关问题 更多 >