我们想知道给定单词中元音的索引,例如,单词super(第二和第四个字母)中有两个元音。
所以给定一个字符串“super”,我们应该返回一个[2,4]的列表。
我的代码:
def vowel_indices(word):
global vowels
global vowelsList
vowels = ["a" , "e" , "i" , "o" , "u" , "A" , "E" , "I" , "O" , "U"]
vowelsList = []
for letter in word:
if letter in vowels:
vowelsList.append(letter)
print(len(vowelsList))
vowel_indices("Anthony")
而不是得到:2,我得到:1 2
答案 0 :(得分:3)
如果你想要返回元音的索引,那么你应该enumerate
这个词。
vowelsList = [idx for idx, letter in enumerate(word) if letter in vowels]
答案 1 :(得分:1)
试试这个:
.clone(true)
答案 2 :(得分:0)
根据您问题的标题,要查找单词中的元音数量,请尝试以下操作:
len([l for l in word if l in 'aeiouAEIOU'])
在一个函数中,它将是:
def vowels_number(word):
return len([l for l in word if l in 'aeiouAEIOU'])
输出示例:
>>> vowels_number('hello')
2
>>>
>>> vowels_number('world')
1
>>>
>>> vowels_number("Anthony")
2
要使您的代码正常工作,您可以尝试这样做:
vowels = 'aeiouAEIOU'
def vowels_number(word):
vowels_list = []
for letter in word:
if letter in vowels:
vowels_list.append(letter)
return len(vowels_list)
<强>输出:强>
>>> vowels_number("Anthony")
2
答案 3 :(得分:0)
你的代码几乎没问题,只有两件事你错了。见下文:
def vowel_indices(word):
global vowels
global vowelsList
vowels = ["a" , "e" , "i" , "o" , "u" , "A" , "E" , "I" , "O" , "U"]
vowelsList = []
for index,letter in enumerate(word):#add an index with enumerate
if letter in vowels:
vowelsList.append(index+1)#add 1 since list/arrays starts from 0
print(vowelsList)
vowel_indices("Super")
vowel_indices("anthony")
输出:
[2, 4]
[1, 5]