from pprint import pprint
list_of_task_to_generate = [
{"version": "1", "dependency": []},
{"version": "2", "dependency": ["1"]},
{"version": "3", "dependency": ["2"]},
{"version": "4", "dependency": ["3"]},
{"version": "5", "dependency": []},
{"version": "6", "dependency": ["5"]},
]
def generate_result_recursive(list_of_tasks):
result = {}
def add_dependencies(task):
version = task["version"]
dependencies = task["dependency"]
if version not in result:
result[version] = []
for dep in dependencies:
if dep not in result:
result[dep] = []
result[dep].append(version)
for i in list_of_tasks:
if i["version"] == dep:
add_dependencies(i)
for task in list_of_tasks:
add_dependencies(task)
return result
answer = generate_result_recursive(list_of_task_to_generate)
pprint(answer)
генерируется код, предоставляющий нужное количество зависимостей
'5': ['6'], '6': [] } [/code] но я ломаю голову, пытаясь понять, почему не захватывается зависимость Next, например: первый элемент должен дать [code]'1':['2', '3', '4'] [/code] Я ценю помощь, ребята =)