Pythonでは、文字列の中の特定の文字や単語を別のものに置き換えることができます。
そのときによく使われるのが、replace()
メソッドです。
この記事では、replace()
の使い方から、回数の指定やリスト内の文字列置換の方法まで、初心者向けに丁寧に解説します。
この記事の対象
replace()とは?
"文字列".replace(置換前, 置換後[, 回数])
引数 | 説明 |
---|---|
置換前 | 探す文字列(置換対象) |
置換後 | 置き換える文字列 |
回数(任意) | 先頭から置換を行う回数(指定しないと全部) |
基本構文
使用例①:すべての文字を置換する(全置換)
text = "hogehoge"
result = text.replace("h", "a")
print(result)
出力結果
aogeaoge
文字列 "hogehoge"
の中の "h"
をすべて "a"
に置き換えています。
使用例②:置換の回数を制限する
text = "hogehoge"
result = text.replace("h", "a", 1)
print(result)
出力結果
aogehoge
このように、3番目の引数に 1
を指定することで最初の1つだけ置換することができます。
使用例③:リストの中の文字列を置換する
words = ['Hoge', 'Hoge', 'HogePage']
for word in words:
replaced = word.replace("Hoge", "Test", 1)
print(replaced)
出力結果
Test
Test
TestPage
リストの中の文字列にも、replace()
を使って個別に置換できます。
リスト全体を一気に置換したいときは、リスト内包表記を使うともっとスッキリ書けます。
応用:リスト内包表記で一括置換
words = ['Hoge', 'Hoge', 'HogePage']
new_words = [w.replace("Hoge", "Test") for w in words]
print(new_words)
出力結果
['Test', 'Test', 'TestPage']
注意点
replace()
は 元の文字列を変更しません(非破壊)。戻り値を変数に代入する必要があります。- 大文字と小文字は区別されます(
"A"
と"a"
は別文字)
よくある置換のパターンまとめ
目的 | 書き方 |
---|---|
すべて置換 | "abcabc".replace("a", "x") → "xbcxbc" |
一部だけ置換 | "abcabc".replace("a", "x", 1) → "xbcabc" |
空白を削除する | " a b c ".replace(" ", "") → "abc" |
複数行文字列でも使える | "line1\nline2".replace("\n", " ") → "line1 line2" |
まとめ
replace()
は 文字列の置換に便利なメソッド- 回数を指定することで 一部だけ置換もできる
- リスト内の文字列にも簡単に適用可能
- 元の文字列は変わらないので、結果は新しい変数に代入