文字列が不変なので、あなたがそれらを変更したい場合は、単にリストに変換:
my_list = list(my_string)
その後の文字が子音であるかどうかを確認するためにAUXILIAR関数を作成します。
これはまた、資本の文字をチェックしたい特別な子音(スペイン語ñ)、それはあなたのニーズに合うように、この機能を実装して自由に感じるかもしれませんが、多くの方法で行うことができます。
def is_consonant(character):
consonants = ['b','c',...,'z'] # complete the list yourself
if character in consonants:
return True
else:
return False
その後あなたの文字列を繰り返し、string [i]が 'n'で、文字列[i + 1]が子音である位置を調べます。
for i in range(len(my_list)-1):
if my_list[i] == 'n' and is_consonant(my_list[i+1]):
print('nC pattern found ')
my_list[i] = my_list[i+1]
我々は最後の要素までが、最後から二番目の1になるまで反復していないので、私たちが安全に、[I + 1] my_listというんことができます。 ENSであなたは、文字列が必要な場合は
、単なる文字列に戻ってリストを変換:
my_string = ''.join(my_list)
注:次の2つの連続したnが続いている場合はケースを重ねることは望ましくない結果をもたらす可能性があることを考慮してください子音によって:
annq --> annq --> anqq
ここで最初のn個の子音(N)が続き、その後、最初のnは、第1(有効な変化)によって置き換えられます。次に、次のループは "nq"を見て "qq"に変更しますが、結果の文字列には結果として "nq"が含まれます。
あなたがこのケースを考慮したかどうかわかりませんが、それを考慮に入れてください。あなたの結果が子音の後に続くnを含まないと仮定されているなら、あなたはこのケースを考慮に入れる必要があります。
このPythonコードはありますか?関連タグを追加 –
oops - thanks - done! – alice19
正規表現以外のものはありますか? –