代码的目的最好在下面解释,例如,如果我输入'hello'然后'运气'然后'骗子',正确的输出应该是'5''eouia'3'和'ckr'。当我这样做但它在进入'骗子'后不断提示我输入更多。
loadURL()
答案 0 :(得分:1)
我会保留所有必需元音的set
并减去你输入的所有字母,直到该集合为空:
VOWELS = 'aeiou'
vowelsSoFar = set(VOWELS)
while vowelsSoFar:
word = input('enter a word: ')
vowelsSoFar -= set(word)
# Feel free to print out the remains vowels, for example
答案 1 :(得分:0)
您可以使用列表推导来获取元音并返回len
。
<强>代码强>
import itertools as it
words = 'hello', 'luck', 'liar'
seen_vowels = "".join(c for w in words for c in w if c in "aeiou")
seen_vowels
# 'eouia'
len(seen_vowels)
# 5
可以通过每个反转词的takewhile
找到尾随辅音。
trailing_cons = "".join("".join(it.takewhile(lambda x: x not in "aeiou", w[::-1]))[::-1] for w in words)
trailing_cons
# 'ckr'
<强>详情
注意,takewhile
在第一个观察到的元音之前抓住所有辅音。通过颠倒每个单词,我们得到尾随辅音。
"".join(it.takewhile(lambda x: x not in "aeiou", "luck"[::-1]))
# 'kc'