Ich habe ein Problem, das das Ergebnis einer rekursiven Funktion mit Python zurückgibt.Kann eine Liste von einer rekursiven Funktion nicht zurückgeben
Meine Funktion muss eine Liste von Paaren möglicher Vergleiche zwischen Ganzzahlen in einem Bereich von maximal list_upper_range
zurückgeben.
Es ist wichtig, dass zwei Eingänge nur einmal pro Paar gepaart werden.
Die Funktion verhält sich wie erwartet, bis ich das Ergebnis drucke, nachdem das Ergebnis an die Stelle zurückgegeben wurde, an der die Funktion aufgerufen wurde.
def generate_comparisons_list(list_upper_range, iter_start, list_of_cases):
if iter_start == list_upper_range:
#print(list_of_cases) here verified condition was met
return list_of_cases
for i in range(iter_start+1, list_upper_range):
this_case = [iter_start, i]
list_of_cases.append(this_case)
iter_start += 1
generate_comparisons_list(list_upper_range, iter_start, list_of_cases)
list_of_cases_a_and_b = generate_comparisons_list(list_upper_range=6, iter_start=1, list_of_cases=[])
print(list_of_cases_a_and_b) #returns None
Ergebnis sollte als
[[1, 2], [1, 3], [1, 4], [1, 5], [2, 3], [2, 4], [2, 5], [3, 4], [3, 5], [4, 5]]
zurückgegeben werden Habe ich falsch verstanden, wie Python-Listen in rekursiven Funktionen behandelt?
Dies funktionierte Legende! Aber es wird meine Marke noch nicht richtig stimmen. Danke – JasTonAChair
Dies ist eine Art außerhalb des Bereichs Ihrer Frage, aber hier ist auch eine bessere Möglichkeit, was Sie mit itertools erzeugen möchten. '[x für x in itertools.product (Bereich (1,6), Bereich (1,6)) wenn x [0]
James
Ja, das ist viel schöner – JasTonAChair