Il 12/12/2020 07:39, ast ha scritto:
Hello

In case a function recursively calls itself many times,
is there a way to return a data immediately without
unstacking all functions ?


try this way:

def path_finder(graph, start, end, path=[]):
    if start in path:
        yield None
    if start == end:
        yield path + [start]  # Found !
    if start not in graph:
        yield None

    path = path + [start]

    for node in graph[start]:
        found_path = yield from path_finder(graph, node, end, path)
        if found_path:
            yield found_path
    yield None


graph = {'A': ['B', 'C'],
         'B': ['C', 'D'],
         'C': ['D'],
         'D': ['C'],
         'E': ['F'],
         'F': ['C']}
result = []
for r in path_finder(graph, 'A', 'D'):
    result = r
    break
print(result)
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to