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