如何从字符串中移除元音字母

0 投票
4 回答
1551 浏览
提问于 2025-04-18 17:26

我正在尝试从一个字符串中去掉所有的元音字母,使用一个接收名为“text”的参数的函数。我不确定这样写是否是最有效的方式,但这是我想到的。对于这个函数,我不知道怎么让它检查“text”中是否包含“元音字母”列表里的字符,如果有的话就把它们去掉。我原以为在.replace()函数中用空格替换掉它们就可以了,但显然不是这样。这个代码应该能去掉大写和小写的元音字母,所以我也不确定把它们都变成小写是否合适。提前谢谢大家。

def anti_vowel(text): #Function Definition

    vowels = ['a','e','i','o','u'] #Letters to filter out
    text = text.lower() #Convert string to lower case

    for char in range(0,len(text)):
        if char == vowels[0,4]:
            text = text.replace(char,"")

        else:
            return text

4 个回答

0

把你的函数改成这样,去循环处理元音字母的列表:

def anti_vowel(text): #Function Definition

    vowels = ['a','e','i','o','u'] #Letters to filter out
    text = text.lower() #Convert string to lower case

    for vowel in vowels:
        text = text.replace(vowel,"")
    return text

这样做就是逐个查看元音字母,并把每个元音字母出现的地方都替换掉。

0

使用 sub() 函数(你可以在这里查看详细信息:https://docs.python.org/2/library/re.html#re.sub):

re.sub('[aeiou]', '', text)
0

Python中的替换功能是让你指定要替换的子字符串,而不是指定字符串中的某个位置。如果你想要实现其他功能,可以试试下面的方法:

for char in range(0,5):
  text = text.replace(vowels[char],"")
return text

根据评论更新:或者你也可以这样做:

for char in vowels:
   text = text.replace(char,"");
return text;
6

使用 str.translate() 方法非常简单。你可以在这个链接找到相关的文档:https://docs.python.org/2.7/library/stdtypes.html#str.translate

return text.translate(None, 'aeiouAEIOU')

撰写回答