如何在python中修改以下函数以获得所需的输出?

2024-09-30 16:22:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我在写一个函数,它接收一个单词并返回一个辅音替换为_的字符串。 但产出没有人们想象的那么好。如果你能帮我摆脱这种局面,那就太好了。 代码是:

    def replace_letter(word):
        letter_list = word.split()
        print(letter_list)
        new_letter_list = []

        for letter in letter_list:
            if letter not in "aeiou":
                new_letter_list.append("_")
            else:
                new_letter_list.append(letter)

        print(new_letter_list)
        new_word = " ".join(new_letter_list)

        return new_word
    print(replace_word("jaywalk")) 

产出为:

['jaywalk']
['_']
_

我希望这些资料足够。请帮帮我


Tags: 函数字符串innew单词replacelistword
3条回答
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")) 

供参考,使用内置的map

" ".join(map(lambda x: x if x in "aeiou" else "_", "jaywalk"))

列表理解

" ".join([v if v in "aeiou" else "_" for v in "jaywalk"])

产出

_ a _ _ a _ _

你可以用regex来做这个

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

结果将是“\u a\u a\u”

相关问题 更多 >