Wenn Sie rekursiven Code schreiben, möchten Sie einen Basisfall definieren, und Sie möchten eine Methode definieren, um Ihr Problem bei jedem Schritt zu verringern. In diesem Beispiel arbeiten wir mit Listen. Ein guter Basisfall wäre also eine leere Liste []. Wenn die Liste leer ist, ist es sinnvoll, None zurückzugeben. In Ihrem rekursiven Fall möchten Sie etwas arbeiten, um das Problem zu verringern. In diesem Fall können wir ein Element überprüfen, und wenn dieses Element nicht das ist, wonach wir suchen, können wir die Funktion für eine kleinere Version der Liste erneut aufrufen.
Unser Ergebnis ist eine Funktion wie folgt aus:
def searchR(myList, number):
if length(myList) == 0: return None
elif myList[0][0] == number: return myList[0][1]
else: return searchR(myList[1:], number)
Es gibt drei Fälle. Fall 1 ist unser Basisfall, wobei die Länge der Liste 0 ist. Fall 2 ist unser Erfolgsfall, bei dem wir das Ziel der Suche gefunden haben. In Fall 3 machen wir unseren rekursiven Aufruf. Beachten Sie, wie das erste Element aus der neuen Liste entfernt wird! Wenn das erste Element nicht entfernt wird, wird die Funktion für immer wiederholt.
Vielen Dank. Ihre Antwort ist sehr lehrreich für mich ..... –
froh, dass ich helfen kann! – fileyfood500
@ JanekLass Wenn die Antwort Sie zufriedenstellt, sollten Sie sie als akzeptiert markieren. –