mei_13のPython講座 ロゴ

【Pythonコラム】Pythonの`str.replace()`:文字列置換の頼れる相棒




Pythonのstr.replace():文字列置換の頼れる相棒

Pythonで文字列を扱う上で、特定の文字列を別の文字列に置き換える作業は頻繁に発生します。例えば、文章中の誤字を修正したり、データの形式を変換したり、特定のキーワードを隠したりする際などです。そんな時に頼りになるのが、Pythonの文字列メソッド str.replace() です。

このコラムでは、str.replace() の基本的な使い方から、ちょっと応用的な使い方まで、初心者の方にも分かりやすく解説していきます。

str.replace() の基本

str.replace() は、文字列オブジェクトに対して呼び出すメソッドです。引数として、置き換えたい文字列 (old) と、置き換える文字列 (new) を指定します。

# 文字列の定義
original_string = "Hello World! World is great."

# "World" を "Python" に置換
new_string = original_string.replace("World", "Python")

# 結果の表示
print(new_string)  # 出力: Hello Python! Python is great.

上記のように、str.replace() を使うことで、元の文字列 original_string 中の "World" が "Python" に置き換わった新しい文字列 new_string が生成されます。元の文字列は変更されず、新しい文字列が返される 点が重要です。

置換回数の指定

str.replace() には、オプションの引数として count を指定できます。count は、置き換える回数を指定する整数値です。これを指定すると、文字列の先頭から指定された回数だけ置換が行われます。

original_string = "apple banana apple orange apple"

# 最初の2つの "apple" を "grape" に置換
new_string = original_string.replace("apple", "grape", 2)

# 結果の表示
print(new_string)  # 出力: grape banana grape orange apple

この例では、count=2 と指定したため、最初の2つの "apple" だけが "grape" に置き換わり、3つ目の "apple" はそのまま残っています。

空文字列での置換:削除として使う

str.replace()new 引数に空文字列 "" を指定すると、old 引数に指定した文字列を削除する効果が得られます。

original_string = "This is a test string."

# スペースを削除
new_string = original_string.replace(" ", "")

# 結果の表示
print(new_string)  # 出力: Thisisateststring.

この例では、文字列中のすべてのスペースが削除されています。

大文字・小文字の区別

str.replace() は、デフォルトでは大文字と小文字を区別します。

original_string = "Hello world"

# "world" を "Python" に置換 (小文字)
new_string = original_string.replace("world", "Python")
print(new_string)  # 出力: Hello Python

# "World" を "Python" に置換 (大文字)
new_string = original_string.replace("World", "Python")
print(new_string)  # 出力: Hello world (置換されない)

string.replace("World", "Python") は、大文字の "World" が文字列に存在しないため、何も置換されません。大文字・小文字を区別せずに置換したい場合は、string.lower() または string.upper() で文字列を変換してから replace() を使うか、re.sub() などの正規表現ライブラリを利用する必要があります。

複数の置換を一度に行う方法

str.replace() 自体は一度に1つの置換しか行えませんが、複数の置換を連続して行うことで、同様の効果を得ることができます。

original_string = "red blue green"

# 複数の置換
new_string = original_string.replace("red", "orange").replace("blue", "purple")

# 結果の表示
print(new_string)  # 出力: orange purple green

ただし、この方法は置換の順番に注意が必要です。例えば、original_string.replace("a", "b").replace("b", "c") は、まず "a" を "b" に置換し、その後すべての "b" を "c" に置換するため、最終的に "a" は "c" に置換されることになります。

str.replace() の注意点

  • str.replace() は、元の文字列を変更せずに、新しい文字列を返します。
  • デフォルトでは、大文字と小文字を区別します。
  • 複数の置換を一度に行う場合は、置換の順番に注意が必要です。
  • 置換対象が見つからない場合、元の文字列がそのまま返されます。

まとめ

str.replace() は、Pythonで文字列を操作する上で非常に便利なメソッドです。基本的な使い方を理解しておけば、様々な場面で役立ちます。この記事を参考に、ぜひ str.replace() を使いこなして、より効率的な文字列処理を実現してください。



< format()メソッド
コラム一覧に戻る
re.sub() >

レッスン概要

◯月額4,000円で質問し放題!!
◯完全オンライン
◯翌日までには必ず返信
◯挫折しない独自の学習メソッド
◯圧倒的高評価!!
◯テキストベースで時間を選ばない
◯高品質なサンプルコード
詳細はこちら
興味がある方はまず質問だけでもどうぞ!