J'écris une fonction qui prend un mot et retourne une chaîne avec les consonnes remplacées par _.
Mais la sortie n'était pas aussi bonne que celle que l'on pensait être. Ce serait génial si vous pouviez m'aider à sortir de cette situation.
Le code est le suivant: sortie était: p> J'espère que cette information serait suffisante. S'il vous plaît aidez-moi! P> p>
3 Réponses :
def replace_letter (word): new_letter_list = [] for letter in word: if letter not in "aeiou": new_letter_list.append("_") else: new_letter_list.append(letter) new_word = " ".join(new_letter_list) return new_word print(replace_letter ("jaywalk"))
Vous pouvez utiliser regex pour cette
import re pattern = re.compile(r'[b-df-hj-np-tv-xyz]') re.sub(pattern,"_","jaywalk")
Bienvenue dans la communauté! Vous avez beaucoup de bonnes réponses ci-dessous, alors je vais simplement vous donner quelques indices. Vous devriez essayer de découvrir ce qui se passe lorsque vous faites un
.split () code> vous trouverez qu'il se divise sur des espaces. C'est pourquoi vous avez
['Jaywalk'] code> plutôt que
['J', 'A', 'Y', 'A', 'A', 'K'] code>. Ensuite, vous devriez essayer de comprendre comment l'itération fonctionne à Python. Votre pour la boucle ne fonctionne qu'une fois que le
new_letter_list code> n'a qu'un seul élément: Toute la chaîne 'Jaywalk'. Sur la 1ère itération, lettre = 'Jawallk' et 'Jawallk' n'est pas dans 'aeiou'
Enfin, à itérer une chaîne, vous n'avez pas vraiment besoin de le faire dans une liste. À Python, une piqûre est démarrée. Essayez de faire
pour CH dans "Hello World": Imprimer (CH); Code> et voyez ce qui se passe.