我试图找到一个单词中所有元音的所有可能的组合。比如说“你好”:
[halla, halle, halli, hallo, hallu, hella, halle, halli, hallo, hallu...]
我已经写了下面的函数,它只取每个元音,在每个元音处,它将用元音替换所有的元音,并将每个版本添加到一个列表中。我想把它改成我想要的排列,但没用。我尝试在append之后插入元音(“.”join(string),arr),但这会导致无限递归。在
def vowels(word, arr=None):
if arr is None:
a = []
for i, c in enumerate(word):
if c in 'aeiou':
for v in 'aeiou':
string = list(word)
string[i] = v
arr.append("".join(string))
return arr
有人有什么建议吗?在
一旦修复了上面提到的打字错误,函数将返回:
。。。所以它返回一些可能的组合,但不是全部。在
这是因为它将单词中的每个元音依次替换为每个元音,然后转到单词中的下一个元音—但是不是考虑到它在碰到后面的元音时发现的前一个元音。这里有一个递归的解决方案,适用于任何数量的元音单词:
^{pr2}$相关问题 更多 >
编程相关推荐