在字符串中的第一个元音之前计算辅音

时间:2014-10-02 22:36:20

标签: python string python-3.x python-3.4

我正在创建一个简单的猪拉丁语翻译。这就是我到目前为止所拥有的:

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中第一个元音之前的辅音数量?我不想使用功能。

编辑:是的,我的意思是我不想定义自己的功能。对于那个很抱歉。

1 个答案:

答案 0 :(得分:1)

使用itertools.takewhile

 from itertools import takewhile

 c = len(list(takewhile(lambda x: x not in "aeiou", word)))

takewhile需要一个predicate这里是lambda,它将采用元素而谓词是True所以在这种情况下,一旦我们遇到一个元音,该方法将停止并返回到目前为止的辅音列表,我们只使用len函数检查列表中有多少辅音,为c提供索引。