有没有办法编辑这个程序,以便它返回列表中具有给定元音数量的单词数?我试过了,但似乎无法返回正确的数字,而且我不知道我的代码输出的是什么。(我是初学者)def getNumWordsWithNVowels(wordList, num):totwrd=0x=0ndx=0while 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+=1return totwrd打印(getNumWordsWithNVowels(aList,2))这输出“2”,但它应该输出“5”。
1 回答
郎朗坤
TA贡献1921条经验 获得超9个赞
您可以将该sum函数与生成器表达式一起使用:
def getNumWordsWithNVowels(wordList, num):
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, bar
2 # hello, foo
1 # aloha
添加回答
举报
0/150
提交
取消