文字列を扱う際に、特定の文字を別の文字と置き換えたい時があると思います。
Pythonには、上記のように文字列の一部を置換したい場合に使用する 「replace」 メソッドが存在します。
今回は、replaceメソッドの使用方法について、具体的に解説をしていきたいと思います!
Pythonのreplaceメソッドとは?
replaceメソッドは、Pythonで使用可能な文字列を置換するためのメソッドの1つです。
対象の文字列の中から置換したい文字を指定し、指定した文字が含まれていた場合に任意の文字と置換することができます。
またreplaceメソッドは、指定の文字が複数含まれる場合に文字列の置換を行う回数を指定できるという特徴があります。
replaceの基本的な使い方
まずは、replaceメソッドの基本的な使い方から解説していきます。
基本構文と使い方
replaceメソッドを使用する際の基本構文は、以下のように記述します。
【基本構文】
対象文字列.replace(“置換する文字”, “置換後の文字” [, 置換回数])
第1引数には、置換したい文字を指定します。
第2引数には、指定した文字が存在した場合にどの文字に置換するかを指定します。
第3引数では、任意で置換を行う回数を指定することができます。
詳しい内容については、後ほど説明します。
以下のサンプルコードで、実際の使い方を確認してみましょう。
【サンプルコード】
sampleText = "山田太郎くんは現在、15歳です。"
print(sampleText)
replaceText = sampleText.replace("15","20")
print(replaceText)
【実行結果】
山田太郎くんは現在、15歳です。
山田太郎くんは現在、20歳です。
第1引数に指定した文字と、第2引数に指定した文字が置き換わっているのが分かりますね。
このように、replaceメソッドを使用することで文字列を置換することができます。
置換回数を指定する
先ほど少し解説したように、replaceメソッドの第3引数では文字列を置換する回数を指定することができます。
指定した文字が対象の文字列内に複数存在する場合、デフォルトでは一致する文字は全て置換されますが、回数を指定することで置換する文字の数を調整することが可能です。
以下のサンプルコードで動きを見てみましょう。
【サンプルコード】
sampleText = "cat cat dog rabbit"
print(sampleText)
replaceText = sampleText.replace("cat","fox", 1)
print(replaceText)
【実行結果】
cat cat dog rabbit
fox cat dog rabbit
対象の文字列の中には cat の文字が2つありますが、第3引数で回数を1回に指定したため、2つ目の cat の文字は置換されずにそのままとなっています。
このように、回数を指定して置換する文字の数を任意に変更することができます。
リストの要素を置換する
今度は少し応用して、リストに格納された文字列を置換してみましょう。
for文を使用して各要素にアクセスし、文字列の置換を行います。
【サンプルコード】
sampleList = ["apple", "strawberry", "orange", "grapes", "banana"]
newList = []
print("置換前:{}".format(sampleList))
for fruit in sampleList:
replaceFruit = fruit.replace("banana", "peach")
newList.append(replaceFruit)
print("置換後:{}".format(newList))
【実行結果】
置換前:['apple', 'strawberry', 'orange', 'grapes', 'banana']
置換後:['apple', 'strawberry', 'orange', 'grapes', 'peach']
結果を見ると、指定の文字を含む要素が置換されているのが分かりますね。
処理方法としてはよくある手法のため、覚えておくと便利です。
正規表現で文字列を置換する
ここまでは、replaceメソッドを使用して文字列を置換する方法について解説してきましたが、その他にも正規表現を使用して置換を行う方法も存在します。
正規表現を使って文字列を置換する場合は、 reモジュールの sub関数を使用します。
基本構文は以下のように記述します。
【基本構文】
re.sub( 正規表現パターン, "置換後の文字", 置換対象の文字列 )
以下のサンプルコードで動きを見てみましょう。
【サンプルコード】
import re
sampleText = "123abc456def789"
print(sampleText)
replaceText = re.sub(r'[a-z]+', "-", sampleText)
print(replaceText)
【実行結果】
123abc456def789
123-456-789
上記のコードは、小文字のアルファベットの連続を “-” に置換した例です。
[a-z] は小文字のアルファベットどれか1文字、+ は該当する1文字の1回以上の繰り返しを意味します。
このように、正規表現を使用して文字列を置換することもできます。
より複雑な条件で置換する文字を指定できるため、合わせて覚えておくと便利です。
まとめ
いかがでしたか?今回は、replaceメソッドの使い方について解説しました。
文字列を置換することはよく起こり得るケースですので、使い方をしっかりと理解して覚えておくことをオススメします。
また、今回紹介したメソッドや正規表現を使用するやり方の他にも、文字列を置換する方法はいくつか存在します。
それぞれ機能の特徴が異なり、使い分けできるようにしておくと後々の役に立つため、機会があれば調べておくと良いでしょう。
Pythonの勉強方法は?
書籍やインターネットで学習する方法があります。昨今では、YouTubeなどの動画サイトやエンジニアのコミュニティサイトなども充実していて多くの情報が手に入ります。
そして、より効率的に知識・スキルを習得するには、知識をつけながら実際に手を動かしてみるなど、インプットとアウトプットを繰り返していくことが重要です。特に独学の場合は、有識者に質問ができたりフィードバックをもらえるような環境があると、理解度が深まるでしょう。
ただ、Pythonに限らず、ITスキルを身につける際、どうしても課題にぶつかってしまうことはありますよね。特に独学だと、わからない部分をプロに質問できる機会を確保しにくく、モチベーションが続きにくいという側面があります。独学でモチベーションを維持する自信がない人にはプログラミングスクールという手もあります。費用は掛かりますが、その分スキルを身につけやすいです。しっかりと知識・スキルを習得して実践に活かしたいという人はプログラミングスクールがおすすめです。
プログラミングスクールならテックマニアがおすすめ!

ITスキル需要の高まりとともにプログラミングスクールも増えました。しかし、どのスクールに通うべきか迷ってしまう人もいるでしょう。そんな方にはテックマニアをおすすめします!これまで多くのITエンジニアを育成・輩出してきたテックマニアでもプログラミングスクールを開講しています。
<テックマニアの特徴>
・たしかな育成実績と親身な教育 ~セカンドキャリアを全力支援~
・講師が現役エンジニア ~“本当”の開発ノウハウを直に学べる~
・専属講師が学習を徹底サポート ~「わからない」を徹底解決~
・実務ベースでスキルを習得 ~実践的な凝縮カリキュラム~
このような特徴を持つテックマニアはITエンジニアのスタートラインとして最適です。
話を聞きたい・詳しく知りたいという方はこちらからお気軽にお問い合わせください。