Python 使用递归从字符串中删除元音
我想让我当前拥有的代码递归,这样它就会查看每个字母,并将其返回到一个空列表中。到目前为止,我有这个,并希望使它递归。感谢您的帮助Python 使用递归从字符串中删除元音,python,recursion,Python,Recursion,我想让我当前拥有的代码递归,这样它就会查看每个字母,并将其返回到一个空列表中。到目前为止,我有这个,并希望使它递归。感谢您的帮助 VOWELS = ("a", "e", "i", "o", "u", "A", "E", "I", "O", "U") def vowelRemoval(aString): if len(aString) == 0: return aString newString = "" for letter in aString:
VOWELS = ("a", "e", "i", "o", "u", "A", "E", "I", "O", "U")
def vowelRemoval(aString):
if len(aString) == 0:
return aString
newString = ""
for letter in aString:
if letter not in VOWELS:
newString += letter
print(newString)
下面是一种递归删除字符串中元音的方法:
def remove_vowels(s):
if not s:
return s
elif s[0] in "aeiouAEIOU":
return remove_vowels(s[1:])
return s[0] + remove_vowels(s[1:])
print(remove_vowels("I have an apple"))
输出:
hv n ppl
字符串是类似列表和元组的序列 这是一个递归版本,为清晰而不是速度而编写:
VOWELS = 'aeiouyAEIOUY'
def vowelRemoval(s):
if len(s) == 0:
return ''
c = '' if s[0] in VOWELS else s[0]
return c + vowelRemoval(s[1:])
print(vowelRemoval('Hello World!'))
出来
Hll-Wrld!
要生成递归函数,您通常需要一个可以直接返回结果的边缘案例和一个循环定义,其中返回的内容取决于另一个函数调用。边缘大小写可能是空字符串或少于一个字符的字符串:返回什么?循环定义将只计算一个字符,然后再次调用函数来计算字符串的其余部分。我认为您不知道递归的含义。在另一个字符串中不能有任何字符串,您希望实现什么?我希望这样,当发生元音删除时,它将遍历字符串中的每个字母并返回它。请提供一些上下文和解释以及您的答案。如需帮助,请参阅“抱歉”。这应该是一种消除元音的尾部递归方法。我写它就像我在序言中写的一样,差不多
VOWELS = 'aeiouyAEIOUY'
def vowelRemoval(s):
if len(s) == 0:
return ''
c = '' if s[0] in VOWELS else s[0]
return c + vowelRemoval(s[1:])
print(vowelRemoval('Hello World!'))