我正在关注codecademy教程,问题是"定义一个名为anti_vowel的函数,它接受一个字符串,文本作为输入,并返回删除了所有元音的文本.
例如:anti_vowel("嘿你!")应该返回"Hy Y!"."
代码:
def anti_vowel(text):
textlist = list(text)
print textlist
for k in textlist:
if k in"aeiouAEIOU":
print k
textlist.remove(k)
return "".join(textlist)
Run Code Online (Sandbox Code Playgroud)
错误是"哎呀,再试一次.你的功能在anti_vowel上失败了("嘿看单词!").当它应该返回"Hy lk Wrds!"时,它会返回"Hy lk Words!".
我不知道为什么还有额外的"o"呢?谁能告诉我导致错误的原因是什么?谢谢!
原因已在@jonrsharpe的评论中解释.
我想向您展示一个优化版本,它可以工作并使用列表理解:
def anti_vowel(text):
return "".join([x for x in text if x not in "aeiouAEIOU"])
print anti_vowel("Hey look Words!")
Run Code Online (Sandbox Code Playgroud)
输出:
Hy lk Wrds!
Run Code Online (Sandbox Code Playgroud)