3

私は言語翻訳者を作ろうとしています。Pythonでの私にとっての簡単な作業。とか、そう思いました。あなたが気づいていない場合、アップ言語は、単語を取り、すべての母音の前に追加しながらそれを言うときです. たとえば、Andrew は Upandrupew になります。ユーザーが送信した単語のすべての母音を見つけて、それらの前に置く方法を見つけようとしています。すべての母音の前にある単語を切り取る方法はありますか? とても優れているのは優れているだろうか?ありがとう。

4

11 に答える 11

7

多分

VOWELS = 'aeiou'
def up_it(word):
    letters = []
    for letter in word:
        if letter.lower() in VOWELS:
            letters.append('Up')
        letters.append(letter)
    return ''.join(letters)

に簡略化できます

def up_it(word):
    return ''.join('up'+c if c.lower() in 'aeiou' else c for c in word)
于 2013-06-06T20:21:22.353 に答える
6

You could do that with a regex:

import re
a = "Hello World."
b = re.sub("(?i)([aeiou])", "up\\1", a)

The (?i) makes it case-insensitive. \\1 refers to the character that was matched inside ([aeiou]).

于 2013-06-06T20:22:17.640 に答える
0

私はおそらくRegExpを使いますが、それを使用する答えはすでにたくさんあります。私の 2 番目の選択肢は map 関数です。すべての文字を反復処理するよりも魔女の方が優れています。

>>> vowels = 'aeiou'
>>> text = 'this is a test'
>>> ''.join(map(lambda x: 'up%s'%x if x in vowels else x, text))
'thupis upis upa tupest'
>>> 
于 2013-06-07T17:14:29.540 に答える