1. はじめに
Pythonで文字列を扱う際によく使われるのが文字列の置換です。文字列の一部を他の文字や単語に置き換える処理は、データの整形や前処理、ログの書き換え、テンプレートの動的生成など、実務でも頻出の操作です。
本記事では、replace()
メソッドを中心に、Pythonにおける文字列置換の基本から応用、注意点まで、初心者にもわかりやすく解説します。
2. Pythonでの文字列置換の基本
2-1. replace()メソッドの基本構文
Pythonでは、文字列オブジェクトのreplace()
メソッドを使って、指定した文字列を別の文字列に置き換えることができます。
text = "Pythonは楽しい"
new_text = text.replace("楽しい", "面白い")
print(new_text)
実行結果:
Pythonは面白い
2-2. replace()の引数の意味
replace(old, new, count)
の形式で使います。
- old: 置換対象の文字列
- new: 置換後の文字列
- count: (任意)置換する回数。指定しない場合はすべて置換されます。
sentence = "apple apple apple"
result = sentence.replace("apple", "orange", 2)
print(result)
実行結果:
orange orange apple
3. よくある使い方・応用例
3-1. ファイル内の文字列を一括置換
テキストファイル内の特定の単語を一括で置換する処理は、ログの整形や設定ファイルの変更などによく使われます。
# ファイルの内容を読み込み、特定文字列を置換して再保存
with open("sample.txt", "r", encoding="utf-8") as f:
content = f.read()
content = content.replace("旧会社名", "新会社名")
with open("sample.txt", "w", encoding="utf-8") as f:
f.write(content)
3-2. 改行や空白の除去にも使える
replace()
は空白や改行の除去にも使えます。ただし、空白全体を削除したい場合はstr.replace(" ", "")
などと指定します。
text = " Python\nは\n楽しい "
cleaned = text.replace("\n", "").replace(" ", "")
print(cleaned)
実行結果:
Pythonは楽しい
3-3. 複数パターンを一括置換(辞書とループ)
複数の単語を一度に置換したい場合、辞書を使ってループ処理で対応できます。
text = "Python is awesome. Python is fun."
replacements = {
"Python": "JavaScript",
"awesome": "cool",
"fun": "exciting"
}
for old, new in replacements.items():
text = text.replace(old, new)
print(text)
実行結果:
JavaScript is cool. JavaScript is exciting.
4. 注意点・エラー対策
4-1. 元の文字列は変更されない
replace()
は元の文字列オブジェクトを変更せず、新しい文字列を返します。元の変数に代入しないと、置換は反映されません。
text = "Python"
text.replace("Python", "Java")
print(text) # 書き換わっていない
実行結果:
Python
↓ 正しくはこうします:
text = "Python"
text = text.replace("Python", "Java")
print(text)
実行結果:
Java
4-2. 正規表現と混同しない
replace()
は単純な文字列一致による置換で、正規表現は使えません。正規表現で置換したい場合はre.sub()
を使います。
import re
text = "abc123def456"
result = re.sub(r"\d+", "#", text) # 数字部分を "#" に置換
print(result)
実行結果:
abc#def#
5. まとめ
replace()
を使えば文字列の一部を簡単に置換できる- 置換回数の制限も可能
- 複数単語の置換は辞書+ループで効率化できる
- 正規表現が必要な場合は
re.sub()
を活用
文字列の置換処理は、実務でもデータの前処理やテンプレート処理など幅広い場面で活躍します。特にWeb開発やデータ分析の前段階では、文字列整形の精度が成果物の品質に直結することもあります。
ぜひ、基本から応用までマスターしておきましょう!