0
votes

Comment modifier la fonction suivante dans Python pour obtenir la sortie souhaitée?

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: xxx

sortie était: xxx

J'espère que cette information serait suffisante. S'il vous plaît aidez-moi!


2 commentaires

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 () vous trouverez qu'il se divise sur des espaces. C'est pourquoi vous avez ['Jaywalk'] plutôt que ['J', 'A', 'Y', 'A', 'A', 'K'] . 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 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); et voyez ce qui se passe.


3 Réponses :


0
votes
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")) 

0 commentaires

0
votes

FYI, à l'aide de Carte

_ a _ _ a _ _


0 commentaires

0
votes

Vous pouvez utiliser regex pour cette

import re
pattern = re.compile(r'[b-df-hj-np-tv-xyz]')
re.sub(pattern,"_","jaywalk")


0 commentaires