gpt4 book ai didi

python - 如何编写一个接受列表并返回不带元音的相同列表的递归函数?

转载 作者:太空宇宙 更新时间:2023-11-03 14:09:45 25 4
gpt4 key购买 nike

我应该编写一个递归函数,它接受一个字符串列表或一个字符串列表列表,并返回不带元音字母的列表(如果找到的话)。这是我尝试解决的问题:

def noVow(seq):
keys = ['a','i','e','o','u','u']
if not seq or not isinstance(seq, list) :
return
else:
if seq[0] in keys:
del seq[0]
return (noVow(seq[0:]))
else:
return (noVow(seq[1:]))


li = ["b", "c", "d","a"]
print (noVow(li))

我知道错误存在于我的基本案例中,但是我无法想出正确的基本案例。

请注意,递归函数必须用纯函数式编程编写,即不允许有副作用。

最佳答案

def no_vowel(seq):
if not isinstance(seq, list):
raise ValueError('Expected list, got {}'.format(type(seq)))
if not seq:
return []
head, *tail = seq
if isinstance(head, list):
return [[no_vowel(head)]] + no_vowel(tail)
else:
if head in 'aeiou':
return no_vowel(tail)
else:
return [head] + novowel(tail)

列表的超酷拆包是 Python 3 的一项功能,与函数式编程模式匹配非常相似。

关于python - 如何编写一个接受列表并返回不带元音的相同列表的递归函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39704084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com