0

単語に母音が現れるたびに特定のテキストを追加しようとしています。これまでの私のコードは次のとおりです。

first_syl = 'ab'
second_syl = 'bc'
word = 'income'

vowels = "aeiou"
diction = "bcdfghjklmnpqrstvwxyz"
empty_str = ""
word_str = ""

for ch in word:
    if ch in diction:
        word_str += ch
    if ch in vowels:
        empty_str += word_str + ch + first_syl

print (empty_str)

結果 - iabncoabncmeab

正しい結果 - iabncoabmeab

違いは、私のプログラムでは「meab」の直前に余分な「nc」があることです。問題は、ループが実行されると、最初に「n」、次に「nc」、次に「ncm」(非母音) が追加されることですが、代わりに「n」、「c」、「m」の順に追加する必要があります。

これを行う方法についてのアイデアはありますか..?Python 3.2.3 を使用して、ありがとう。

4

2 に答える 2

1

私があなたの客観的な権利を理解しているなら、あなたは各パスでempty_strにchを追加したいので、母音を打ったときにだけfirst_sylを追加します。

スタックしている理由は、母音を打つたびに+=word_strであるためです。ソースとして提供する文字列の母音が増えるほど、悪化し続けるでしょう。

for ch in word:
    empty_str += ch
    if ch in diction:
        word_str += ch
    if ch in vowels:
        empty_str +=  first_syl

print (empty_str, word_str)
于 2012-09-23T04:39:18.237 に答える
0

何をしようとしているのかわかりませんが、目標がiabncoabmeabを取得することである場合は、母音が現れた後にword_strをリセットする必要があります

for ch in word:
if ch in diction:
    word_str += ch
if ch in vowels:
    empty_str += word_str + ch + first_syl
    word_str="" // I don't now python but you should clear the string
于 2012-09-23T04:45:30.153 に答える