Fondamentalement, ce que je veux faire, c'est de mettre à jour les modifications apportées à l'intérieur d'un appel récursif vers ma liste principale. J'ai essayé ci-dessous, mais cela crée une nouvelle liste à chaque fois et que vous oubliez la liste des maternelles, renvoyant plutôt une nouvelle liste d'enfants. Lemmi Expliquez avec un code de base:
def woah(arr):
if len(arr) > 1:
arr[-1], arr[0] = arr[0], arr[-1]
print(arr) //to keep track of changes
return woah(arr[:-1])
woah([2, 3, 4, 5, 6])
>> [6, 3, 4, 5, 2]
[5, 3, 4, 6]
[4, 3, 5]
[3, 4]
3 Réponses :
Un peu de changement:
def woah(arr, l):
if l > 1:
arr[l-1], arr[0] = arr[0], arr[l-1]
print(arr) # to keep track of changes
return woah(arr, l-1)
return arr
arr = [2, 3 ,4, 5 , 6]
woah(arr, len(arr)) # arr will be changed, and you can also accept the return value
Depuis que vous passez une liste plus courte à chaque fois, la liste devient plus courte et plus courte.
Ce shoud fonctionne:
Lorsque vous faites Retour Woah (Arr [: - 1]) Code>, vous laissez le dernier élément et ce n'est pas ce que vous voulez. Essayez quelque chose comme ceci
D'où vient-il?
@ipaleka j'ai raté ça. Merci, j'ai mis à jour la question maintenant.