如何从字符串中移除元音字母
我正在尝试从一个字符串中去掉所有的元音字母,使用一个接收名为“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')