返回具有给定元音数量的列表中的单词数

有没有办法编辑这个程序,以便它返回列表中具有给定元音数量的单词数?


我试过了,但似乎无法返回正确的数字,而且我不知道我的代码输出的是什么。


(我是初学者)


def getNumWordsWithNVowels(wordList, num):

totwrd=0

x=0

ndx=0

while ndx<len(wordList):

    for i in wordList[ndx]:

        if(i=='a' or i=='e' or i=='i' or i=='o' or i=='u' or i=='A' or i=='E' or i=='I' or i=='O' or i=='U'):

            x+=1

        if x==num:

            totwrd+=1

        ndx+=1

return totwrd

打印(getNumWordsWithNVowels(aList,2))


这输出“2”,但它应该输出“5”。


慕无忌1623718
浏览 145回答 1
1回答

郎朗坤

您可以将该sum函数与生成器表达式一起使用:def getNumWordsWithNVowels(wordList, num):&nbsp; &nbsp; return sum(1 for w in wordList if sum(c in 'aeiou' for c in w.lower()) == num)以便:aList = ['hello', 'aloha', 'world', 'foo', 'bar']print(getNumWordsWithNVowels(aList, 1))print(getNumWordsWithNVowels(aList, 2))print(getNumWordsWithNVowels(aList, 3))输出:2 # world, bar2 # hello, foo1 # aloha
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python