デジタルトレンドナビ
システム開発

2024.05.10

【Python】replaceメソッドを使った文字列の置換方法

【Python】replaceメソッドを使った文字列の置換方法

機械学習やAI開発のみならず、幅広い分野で活躍できる汎用言語がPythonです。Pythonには、さまざまなメソッドが存在しており、上手に利用することでプログラムの作成効率を向上させてくれます。


今回は、メソッドのなかから「replaceメソッド」の使い方を解説します。サンプルコードを用いた文字列の置換方法や、replaceメソッド以外のメソッドを用いた方法もまとめて紹介するため、プログラミングの勉強をしている方はぜひ最後までご覧ください。

この記事でわかること

  • replaceメソッドの具体的な使い方
  • replaceメソッドを用いた文字列の置換方法
  • replaceメソッド以外での文字列の置換方法

Python replaceの基本的な使い方

Python replaceの基本的な使い方

replaceとは、Pythonで使用できるメソッドのひとつです。文字列のなかにある特定の文字を、任意の文字に置換する際に使用します。

基本的な記述方法は、以下のとおりです。

sentence = ‘Hello World!’

print(sentence.replace(‘Hello’, ‘Hi!’))

replaceメソッドの第1引数に置換される文字列を、第2引数に置換する文字列を書きます。例として紹介したコードを実行した結果は、以下のとおりです。

Hi! World!

また、Pythonは大文字と小文字を別の文字と認識しています。そのため、以下のような記述をすると期待通りの文字列の置換を実行できないため、注意してください。

sentence = ‘Hello World!’

print(sentence.replace(‘hello’, ‘Hi!’))

実行結果は以下のとおりです。

Hello World!

Python replaceを使った文字列の置換方法

Python replaceを使った文字列の置換方

replaceの基本的な使い方は、理解できたでしょうか。ここからは、状況に応じた文字列の置換方法を、サンプルコードと一緒に解説します。

引数を変数にして置換する

メソッドの引数は、実際の文字列ではなく変数を置いても問題なく実行できます。具体的なコードの記述方法は、以下のとおりです。

sentence = ‘Good morning!’

se1 = ‘morning!’
se2 = ‘afternoon!’

print(sentence.replace(se1, se2))

サンプルコードを実行すると、次のような結果になります。

Good afternoon!

変数を活用することでコードの可読性が高まり、修正もしやすくなります。

空文字にして置換する

メソッドの引数は変数のみならず、空文字も設定できます。具体的な記述方法は、以下のとおりです。

sentence = ‘How are you doing?’

print(sentence.replace(sentence, “”))

空文字の設定は、データの書き換えや条件分岐をしたい場合に役立ちます。ちなみに、空文字と混同されがちな存在としてnullの名前が挙げられますが、両者のデータベースにおける扱いは同じではありません。

空文字は文字が存在しない文字列を表し、nullは値が存在しないことを示します。両者の違いを理解することで、より正確なデータ管理が可能になります。

回数を指定して置換する

メソッドの第3引数に数値を記載することで、任意の回数分繰り返し同じ処理を実行させられます。具体的な記述方法は、以下のとおりです。

sentence = ‘Jump! Jump! Jump!’

print(sentence.replace(‘Jump!’, ‘Dash!’, 2))

サンプルコードでは、第3引数にint型の引数である2を設定しているため、同じ処理を2回繰り返してくれます。実際にプログラムを実行した結果は、次のとおりです。

Dash! Dash! Jump!

置換は2回までしか実行されないため、3つ目の「Jump!」はそのままになっています。

リストの中身を置換する

Pythonにおけるリストとは、データを一直線にまとめたものです。

number_list = [‘one’, ‘two’, ‘three’]

例のようにデータをnumberという名前のリストにまとめ、複数のデータにnumberという変数名でアクセスできるようになります。リストのデータは追加や削除、置換が可能です。

numberの中身を置換したい場合は、以下のように記述してください。

number_list = [‘one’, ‘two’, ‘three’]

change_list = [string.replace(‘e’, ‘z’) for string in number_list]

print(change_list)

上記のプログラムを実行すると、次のような結果になります。

[‘onz’, ‘two’, ‘thrzz’]

複数の文字列を置換する

置換したい文字が複数ある場合、以下のような記述をします。

sentence = ‘She is good at speaking English’

sentence2 = sentence.replace(‘She’, ‘He’).replace(‘English’, ‘Chinese’)

print(sentence2)

サンプルコードを実行すると、以下のような結果になります。

He is good at speaking Chinese

しかし、この記述方法は前の置換が次の置換に影響を与える可能性があるため、置換を実行する順番に注意が必要です。

Python replace以外の置換方法

Python replace以外の置換方法

文字列の置換ができるメソッドは、replaceだけではありません。状況に合わせて、以下のメソッドを使い分けられるようにしてください。

translateメソッド

対象の文字を、指定した文字に置換するメソッドです。文字列のなかに句読点が複数存在する場合や、何文字あるか分からないが別の文字に置き換えたい場合など、複数の文字を置換したい際に使用します。

具体的な記述方法は、以下のとおりです。

sentence = ‘今後とも、ご指導ご鞭撻のほどよろしくお願いいたします。’

translation = sentence.maketrans(‘鞭撻’, ‘べんたつ’)
print(sentence.translate(translation))

translateメソッドに指定する変換テーブルは、maketrans()関数で作成します。サンプルコードを実行すると、次のような結果になります。

今後とも、ご指導ごべんたつのほどよろしくお願いいたします。

re.subメソッド

完全一致ではなく、正規表現にマッチした文字列を置換したいときに使用します。具体的なコードの記述方法は、以下のとおりです。

import re

sentence = ‘明日は久しぶりの祝日です’

sentence_mod = re.sub(‘明日’, ‘あした’, sentence)

print (sentence_mod)

第1引数に正規表現パターン、第2引数に置換先文字列、そして第3引数に処理対象の文字列を指定します。また、reモジュールをimportするのを忘れないようにしてください。

実際にプログラムを実行すると、次のような結果になります。

あしたは久しぶりの祝日です

ちなみに、第4引数には最大置換回数も指定可能です。

まとめ

まとめ

replaceメソッドを中心に、Pythonの文字列の置換方法について紹介しました。文字列の置換方法は複数あり、想定される状況によって適したメソッドを選択する必要があります。

メソッドの使い分けを学ぶ有効な方法は、実際にコードを作成し、動かしてみることです。近年は参考書をはじめ、オンライン上でも無料でサンプルコードが公開されています。それらを参考にしつつ、適切な使い分けができるように練習することをおすすめします。

投稿者

  • デジタルトレンドナビ編集部

    システム開発、Webサイト制作、ECサイトの構築・運用、デジタルトランスフォーメーション(DX)など、デジタルビジネスに関わる多岐の領域において、最新のトレンド情報や実践的なノウハウを発信してまいります。