【python】文字列の文字を置換する方法とその注意点

python

replaceを使った置換

pythonで文字列の文字を置換する場合はreplaceを使って簡単に書くことができます。詳しくはpythonの公式ドキュメントを参考にしてください。

replaceは基本的に、

対象の文字列.replace(‘置換前の文字列’,’置換後の文字列’)

という形式で書きます。

1種類の文字や単語を置換する

例えば、’AGCTNAAAA’という文字列s1のAをTに置き換える場合を考えます。

文字列s1に含まれるAがすべてTに置き換わっています。

特定の文字や単語を消去したい場合

特定の文字を消去したい場合は、置換後の文字の引数のところを「”」にしておきます。

文字列s1のAがすべて消去されました。

2種類以上の文字や単語を同時に変換したい場合

2種類以上の文字を同時に変換することもできます。その場合はreplaceを並べて書きます。

二つ文字が同時に置換されていることが分かります。

replaceを使うときの注意点

2種類以上の置換がうまくできない

例えば、 ‘AGCTNAAAA’という文字列s1に対して「A→T」、「T→A」、「G→C」、「C→G」という文字の置換を行いたい場合を考えます。

つまり、置き換え操作後に得たい文字列は’TCGANTTTT’です。

これを、replaceを使って書いてみます。

上のコードを実行してみると’AGGANAAAA ‘という文字列になってしまい、目的の文字列が得られませんでした。

これは、replaceがすべての置き換え操作(今回の場合は4つの置き換え操作)を順番に実行しているためです。

つまり、実際に行っている操作は、

に等しくなっています。

解決策:translateを使った書き方

このようなときには、translateを使うことでうまく変換できました。 詳しくはpythonの公式ドキュメントを参考にしてください。

translateの()の中に、str.maketrans()関数を指定し、置換操作を設定します。 str.maketrans()関数の詳細はこちらです。

うまく変換できました。

タイトルとURLをコピーしました