Python,我错误的删除字符串元音的功能?

che*_*omo 3 python

我正在关注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"呢?谁能告诉我导致错误的原因是什么?谢谢!

DJa*_*ens 8

原因已在@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)