コンテンツにスキップ

Pythonのチュートリアル: replace関数を使いこなす方法

[

Pythonで文字列を置換する方法

Pythonでは、テキストから文字列や部分文字列を削除または置換するために、.replace() メソッドや re.sub() 関数をよく使用します。このチュートリアルでは、架空のチャットルームの対話ログを取り、.replace() メソッドと re.sub() 関数の両方を使用してログをサニタイズする方法について説明します。

Pythonチュートリアルパートナーズのデベロッパーとして、一対一のテキストチャットを通じて技術サポートを提供する会社で働いています。顧客の個人データを削除し、悪口を絵文字に置換するスクリプトを作成することが課せられています。

以下は、与えられた短いチャットログです:

[support_tom] 2022-08-24T10:02:23+00:00 : 何をお手伝いできますか?
[johndoe] 2022-08-24T10:03:15+00:00 : アカウントに接続できません!
[support_tom] 2022-08-24T10:03:30+00:00 : Caps Lockがオフになっているか確認しましたか?
[johndoe] 2022-08-24T10:04:03+00:00 : くそっ!あなたが正しかった!

このようなチャットは普通にエージェントが扱うものです。ユーザーの識別子、ISO時刻、メッセージなどが含まれています。

この場合、顧客のjohndoeが不満を申し立てており、企業のポリシーでは、対話ログをサニタイズして簡略化し、独立した評価のために渡すことになっています。

まず最初に、悪口を処理します。

Pythonの文字列や部分文字列の削除や置換方法

Pythonで文字列を置換する最も基本的な方法は、.replace() メソッドを使用することです。

>>> "Fake Python".replace("Fake", "Real")

上記の例のように、replace() メソッドを文字列にチェーンさせ、2つの引数を指定します。最初の引数は置換したい文字列であり、2番目の引数は置換後の文字列です。

注意: Pythonシェルでは.replace()の結果が表示されますが、文字列自体は変更されません。これをより明確にするために、変数に文字列を割り当てることで確認できます。

>>> name = "Fake Python"
>>> name.replace("Fake", "Real")
>>> name
'Fake Python'
>>> name = name.replace("Fake", "Real")
>>> name

これらの知識をログに適用してみましょう。

transcript = """\
[support_tom] 2022-08-24T10:02:23+00:00 : 何をお手伝いできますか?
[johndoe] 2022-08-24T10:03:15+00:00 : アカウントに接続できません!
[support_tom] 2022-08-24T10:03:30+00:00 : Caps Lockがオフになっているか確認しましたか?
[johndoe] 2022-08-24T10:04:03+00:00 : くそっ!あなたが正しかった!"""
transcript.replace("くそっ", "😡")
[support_tom] 2022-08-24T10:02:23+00:00 : 何をお手伝いできますか?
[johndoe] 2022-08-24T10:03:15+00:00 : アカウントに接続できません!
[support_tom] 2022-08-24T10:03:30+00:00 : Caps Lockがオフになっているか確認しましたか?
[johndoe] 2022-08-24T10:04:03+00:00 : 😡!あなたが正しかった!

これにより、ログ内の "くそっ" が絵文字に置換されます。

しっかり理解するために、実際に動作するコードを使いながら、詳細なステップバイステップの実行可能なサンプルコードを提供しました。