0

depsの各値をループするのに苦労しています..現在、ループできるのは1回だけです.以下の期待される出力があります.ループに変更して以下の期待される出力を取得する方法について、誰かが入力を提供できますか?

'''
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
4

1 に答える 1

1

現在、再帰はありません。ループの代わりに、再帰的に呼び出す関数が必要です。このようなもの:

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
于 2013-04-29T04:24:49.400 に答える