我正在创建一个简单的猪拉丁语翻译。这就是我到目前为止所拥有的:
while True:
phrase = input('Translate > ').lower().split()
for word in phrase:
if word[0] in 'aeiou': # If the first letter is a vowel
print(word + '-way') # Add suffix 'way'
else:
c = # Number of consonants before the first vowel
print (word[c:] + word[0:c] + '-ay')
如何尽可能简单地使c
等于word
中第一个元音之前的辅音数量?我不想使用功能。
答案 0 :(得分:1)
from itertools import takewhile
c = len(list(takewhile(lambda x: x not in "aeiou", word)))
takewhile需要一个predicate
这里是lambda,它将采用元素而谓词是True
所以在这种情况下,一旦我们遇到一个元音,该方法将停止并返回到目前为止的辅音列表,我们只使用len
函数检查列表中有多少辅音,为c
提供索引。