Pythonのreplaceとは何か?置換の方法とサンプルコードを解説!

公開日: 2025.04.30
更新日: 2025.05.09
デフォルト画像

Pythonで文字列を扱うとき、「ある文字を別の文字に置き換えたい」と思った経験はありませんか?そんなときに役立つのが、標準で備わっているメソッド「replace」です。

でもこの「replace」は単純な置換だけでなく、回数指定や複数同時置換、さらには改行の扱いまで、意外と奥が深いのです。

本記事では、基本から一歩踏み込んだテクニックまで、実際に手を動かしながらわかりやすく解説していきます。

Pythonのreplaceとは?

Pythonのreplaceというのは、文字列(str型)内の特定の部分文字列を別の文字列に置き換えるための組み込みメソッドのことです。元の文字列は変更されず、新しい文字列が返されます。

例えば、ファイル名の拡張子を一括で変更したいときや、不要なスペースや改行を取り除きたいときなどに便利です。

基本構文

new_string = original_string.replace(old, new[, count])

  • original_string:置換対象の元となる文字列
  • old:置換したい文字列
  • new:置き換える文字列
  • count(省略可):置換を行う最大回数(指定しない場合はすべて置換)

例:

text = “apple banana apple”

result = text.replace(“apple”, “orange”, 1)

print(result)  # 出力: “orange banana apple”

実行結果:

orange banana apple

なお、よりPythonの独学を効率よく行いたい方は、以下の記事が参考になるので、ぜひ併せて読んでみてください。

Pythonにおけるreplaceの使い方

この章では、Pythonにおけるreplaceの使い方について、以下の項目の順に解説していきます。

  1. 基本の使い方
  2. 最大痴漢回数の指定
  3. 複数の文字列の置換
  4. 文字列の交換(スワップ)
  5. 改行文字の置換

①:基本の使い方

replaceメソッドは、文字列中の指定した部分を別の文字列に置き換えるシンプルな方法です。以下はもっとも基本的な使い方の例です。

text = “hello world”

new_text = text.replace(“world”, “Python”)

print(new_text)

実行結果:

hello Python

上記では、

text.replace(“world”, “Python”) 

で「world」を「Python」に置き換えています。

元の text は変更されず、新しい文字列が「new_text」に格納されます。

②:最大置換回数の指定

replaceメソッドは第三引数に置換する最大回数を指定できます。

これを使うと、文字列の先頭から順に指定回数だけ置き換え、残りはそのまま残せます。

text = “cat cat cat dog”

updated = text.replace(“cat”, “lion”, 2)

print(updated)

実行結果:

lion lion cat dog

この例では「apple」を「banana」に置き換えていますが、最大回数を 2 に設定したため、最初の2つだけが変換されました。

3つ目の「apple」はそのまま残るので、一部分だけ置換したい場面で役立つというわけです。

③:複数の文字列の置換

複数の単語を一度に置き換えたいときは、replace を連続して呼び出すだけで実現できます。

シンプルかつ直感的に複数のパターンを処理できます。

sentence = “dog cat bird”

updated = sentence.replace(“dog”, “wolf”).replace(“bird”, “eagle”)

print(updated)

実行結果:

wolf cat eagle

1行目で元の文字列を定義し、2行目で「dog」を「wolf」、続けて「bird」を「eagle」に置換しています。

チェーンするだけで複数の置換を同時に実行できるため、手軽に文字列を整形したいときに役立ちます。

④:文字列の交換(スワップ)

同じ文字列同士を入れ替えるには、一時的なプレースホルダーを使って競合を避けます。

text = “red blue green”

swapped = text.replace(“blue”, “__temp__”) \

              .replace(“red”, “blue”) \

              .replace(“__temp__”, “red”)

print(text, “→”, swapped)

実行結果:

red blue green → blue red green

まず「blue」を一時的に「__temp__」に置き換え、次に元の「red」を「blue」に変更しています。

最後に「__temp__」 を「red」に戻しています。この手順なら、置換対象が互いに重なっていても正しく入れ替えできます。

⑤:改行文字の置換

文字列内の改行(\n)を別の文字列に置き換えることで、1行にまとめたり特定の区切り記号に変換できます。

text = “first line\nsecond line\nthird line”

single_line = text.replace(“\n”, ” | “)

print(single_line)

実行結果:

first line | second line | third line

上記では、「\n」(改行コード)」を「 | 」 に置き換えています。

改行をスペースやカンマ、パイプなど任意の区切り文字に変えることで、ログ整形やCSV形式への変換などが簡単になります。

>>DMM WEBCAMP Pythonコースの詳細はこちら

複数の文字を指定して置換するときは「translate」

translateメソッドは、1文字ずつ別の文字に置換したい場合に最適な手段です。

複数の文字をまとめて変換できるため、replaceを何度も呼び出すより効率的でシンプルに処理できます。

①:translateの基本の使い方

translateは、一般的に以下のように用いられます。

mapping = str.maketrans(“abc”, “123”)

result = “abc cab”.translate(mapping)

print(result)

実行結果:

123 312

上記の例では、

str.maketrans(“abc”, “123”)

で ‘a’→’1’, ‘b’→’2’, ‘c’→’3’ の変換表を作成します。

そして、

.translate(mapping) 

を呼び出すと、文字列中の該当文字が一括で置換されます。

②:文字列の交換(スワップ)

translateを使えば、文字列の交換を行うことも可能です。以下のサンプルコードを見てみましょう。

mapping = str.maketrans({“x”: “y”, “y”: “x”})

result = “x y z”.translate(mapping)

print(result)

実行結果:

y x z

上記は辞書形式で置換ルールを定義し、”x” と “y” を相互に入れ替えています。

translate は一時プレースホルダーを使わずに直接スワップできるため、replace よりシンプルに書けるのが特徴です。

なおPythonのエラーが解決できなかったり、そもそも環境構築でつまづきスタートすらできていない方は、モチベーションが低下して挫折しそうになるものです。

そのような方は、ぜひ一度以下の記事をご一読いただき、参考にしてみてください。

正規表現で文字列を置換するときは「re.sub」「re.subn」(sub関数)

文字列置換で「完全一致」ではなく、パターンにマッチした部分を柔軟に変えたい場合は、re モジュールの sub(および戻り値と置換数を返す subn)が便利です。

ワイルドカードや文字クラスなど正規表現の力を借りて、一度に複雑な置換を行えます。

この章では、それらの使い方をコード付きで詳しく解説していきます。

関連記事

資料請求

  • 短期集中で最速エンジニア転職を実現-転職成功者インタビュー一覧

    DMM WEBCAMPでは転職成功率98%を実現しています。本資料では、元警察官や元ラーメン屋など様々なバックグラウンドを持つ卒業生の声をお届けします。

    資料をダウンロードする
  • IT技術がもたらす3つの変化と身につけるべきスキル

    IT技術の発展により、今後10~20年程度で47%の仕事がなくなると言われています。どのような変化が訪れ、私達はどのようなスキルを身につけるべきかを解説します。

    資料をダウンロードする
  • 未経験がフリーランスエンジニアになる方法-年収アップで自由な働き方を手に入れる

    働き方改革やリモートワークの影響でフリーランスという働き方の人気は高まりつつあります。フリーランスエンジニアとして活躍するために必要な情報をお届けします。

    資料をダウンロードする

© 2025 WEBCAMP MEDIA Powered by AFFINGER5