strip命令不会删除字符串中的"e"

cod*_*eak 1 python python-3.x

我试图从给定的单词中删除元音并返回单词.

例如

word = "helleeEoo"
Run Code Online (Sandbox Code Playgroud)

如果我使用如下所示的strip命令,我输出的是"hell"而不是"hll"

word = word.strip("aAeEiIoOuU")
Run Code Online (Sandbox Code Playgroud)

但如果我使用如下所示的join命令,它可以正常工作:

word = ''.join(c for c in word if c not in 'aAeEiIoOuU')
Run Code Online (Sandbox Code Playgroud)

我正在使用python 3,我想知道为什么在最终输出中出现strip命令'e'的情况?

CDs*_*ace 6

文档(强调我的):

返回删除了前导和尾随字符的字符串副本.chars参数是一个字符串,指定要删除的字符集.如果省略或None,则chars参数默认为删除空格.chars参数不是前缀或后缀; 相反,它的值的所有组合被剥离:
...
最前沿和后字符的参数值从字符串剥离.从前端删除字符,直到到达字符集中未包含的字符串字符.在尾端发生类似的动作.

未被删除的"e"不在strip字符串的任何一端.它在中间,因此strip不会碰它.

在你的第二个例子中,c for c in word触摸了字符串中的每个字符,因此中间的"e"被触摸,测试not in,并被省略.