Bonjour ,
Je suis bloqué sur une fonction en Python je n'arrive pas à comprendre où se trouve mon erreur.
Je dois créer une fonction en python qui remplace un mot par un autre lorsqu'on le trouve dans une liste. Pour tester les fonctions j'ai décidé de remplacer le mot "chat" par le mot "chien" .
Le but de l'exercice était de reprendre une fonction que j'ai faite en LISP, de la traduire en C, puis en Python. Mais pour celle en Python je ne comprends pas pourquoi seulement la première occurrence du mot est traitée:
Voici ma fonction :
Test de la fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 def remplace(L, toto, tata) : if not L : return None if L[0] == toto : L[0] = tata #si (car L) == toto je le remplace par tata return remplace(L[1:], toto, tata) #je passe à la suite de la liste (cdr L)
>L = ['chat', 'loup', 'pieuvre', 'chat', 'loutre', 'rat']
> remplace(L, "chat", "chien")
> L
['chien', 'loup', 'pieuvre', 'chat', 'loutre', 'rat']
Merci beaucoup pour votre aide.
Partager