.net column

.NET開発者のためのブログメディア

[Python]replaceを使った文字列置換の徹底解説|replaceを使って文字列置換を正しくこなせるようになろう!

 
[Python]replaceを使った文字列置換の徹底解説|replaceを使って文字列置換を正しくこなせるようになろう!
基本情報技術者試験の試験対策はこちら>>

SE
文字列を置き換えるメソッドについて、教えてください。

PM
では、replaceを利用した文字列置き換えの方法について、実際のコードを見ながら解説していきましょう。

[Python]replaceを使った文字列置換の徹底解説


今回は、Pythonでの文字列置換について説明します。

replace()での基本的な文字列置換ができます。translate()は複数の置換をまとめて記述できます。re.sub()は正規表現での置換ができます。基本的な使い方から、正規表現での置換まで詳しく紹介します。

Pythonでの文字列置換に興味のある方はぜひご覧ください。

基本的な使い方

Pythonでのreplaceの基本的な使い方を紹介します。

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

最大置換回数の指定

replaceでは、最大置換回数を指定できます。実際のソースコードを見てみましょう。

実行結果は以下のようになります。

これを応用すれば、最後にマッチした要素のみを置換できます。実際のソースコードを見てみましょう。

実行結果は以下のようになります。

最後の文字列の反転を忘れないようにしましょう。

複数置換

Pythonのreplaceで、複数文字を置換する方法を紹介します。replace()を連結すれば、複数文字の置換ができます。

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

改行の置換

Pythonのreplaceで改行文字などの特殊文字を置換する方法を紹介します。

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

改行は「\n」と指定します。

リストの置換

Pythonでは、replaceでリストの中身を一括置換できます。ここでは、内包表記でreplaceを記載します。

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

リストの中身を一括置換できていることが分かります。

DataFrameの置換

Pythonでは、replaceでDataFrameの一括置換ができます。DataFrameを扱うには、ソースコードの先頭に「import pandas as pd」を記述してください。事前にsample.csvをカレントディレクトリに作成しておいてください。

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

このように、replaceでDataFrameの一括置換ができます。

複数置換(translate)

replace()を連結すれば、複数文字の置換ができることは紹介しました。translateを使えば、もっと簡単に記述できます。

replace()の連結との差異も確認してみましょう。

実行結果は以下のようになります。

replace()の連結では、replaceが2回実行されることになります。oをlに置換し、lを*に置換するので、oとlが*になります。一方、translateでは、oをlに、lを*に同時に置換するので、replace()の連結と結果が異なります。

正規表現で置換(re.sub)

Pythonでは、re.sub()を使えば正規表現での置換もできます。正規表現を使用する場合は、ソースコードの先頭に「import re」を記述してください。

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

「IGNORECASE」を指定すれば、大文字小文字を区別しない置換もできます。実際のソースコードを見てみましょう。

実行結果は以下のようになります。

正規表現にマッチした文字列をそのまま使いまわすこともできます。実際のソースコードを見てみましょう。

実行結果は以下のようになります。

SE
replaceを利用すれば、効率よく置換できますね。

PM
文字置換だけでなく、空白の削除や数値の置換も可能です。実際にコードを書いてマスターしましょう。

まとめ

いかがでしたでしょうか。Pythonでの文字列置換について説明しました。replace()での基本的な文字列置換ができ、translate()は複数の置換をまとめて記述できます。また、re.sub()は正規表現での置換ができます。

ぜひご自身でPythonでの文字列置換についてのソースコードを書いて、理解を深めてください。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags