【Python】translate()を使って指定した文字を置換する!
Pythonで指定した文字で置換するにはtranslate()を使用します。
translate()は対象の文字を指定した文字に置換するメソッドであり、単数の1文字を別の新しい1文字に置換することができれば、複数の1文字を一度に別の新しい1文字に置換することができます。
そのため、「、」や「。」など文字列の中に複数存在し、何文字あるか分からないが別の文字に置き換えたい場合やプログラムによって作成されたファイルの拡張子がおかしくなって直したい場合にtranslate()メソッドを使用すると文字列の置き換えが簡単になります。
今回はPythonのtranslate()で指定した文字を置換する方法について以下の内容で解説していきます。
⚫︎ 指定した文字を置換する場合
⚫︎ 文字列の文字を削除して置換する場合
⚫︎ 指定した複数の文字を置換する場合
目次
今回はPythonのtranslate()で文字を指定した文字で置換する方法について説明していきます。
はい!
お願いします!
translate()とは
translate()は、対象の文字を指定した文字に置換するメソッドであり、単数の1文字を別の新しい1文字に置換することができれば、複数の1文字を一度に別の新しい1文字に置換することができます。
translate()の書き方
translate()の構文は下記となります。
1 |
translate(置換するテーブル) |
translate()のパラメータ
⚫︎ 置換するテーブル:
対象の文字と置換後の文字のテーブルをマップ型もしくは辞書型で指定する
translate()のパラメータに置換するテーブルを指定することで指定された文字を置換することができます。
置換するテーブルは、静的メソッドであるmaketrans()によって作成します。
指定した文字を置換するサンプルコード
指定した文字を置換するサンプルコードを紹介します。
文字列の文字を置換する場合
文字列の文字を置換する場合は、translate()のパラメータである置換するテーブルをマップ型で指定します。
また、maketrans()の第1パラメータと第2パラメータは同じ文字数を指定します。
例
1 2 3 4 5 6 7 |
str1 = 'フライテックが運営するITエンジニアの案件・求人情報サイト略して【フラテ】。' print('・置換前') print(str1) print('・置換後') translation = str1.maketrans("エンジニア", "えんじにあ") print(str1.translate(translation)) |
出力結果
・置換前
フライテックが運営するITエンジニアの案件・求人情報サイト略して【フラテ】。
・置換後
フライテックが運営するITえんじにあの案件・求人情報サイト略して【フラテ】。
translate()のパラメータである置換するテーブルをマップ型を指定することで、文字列の文字を置換することができます。
その為、「エンジニア」という文字が「えんじにあ」に置き換わって表示されています。
translate()で文字をそれぞれ指定した文字で置換していますね!
そうですね。
しかし「エンジニア」という文字列を「えんじにあ」置換するのではなく「エ」を「え」、「ン」を「ん」、「ジ」を「じ」、「ニ」を「に」、「ア」を「あ」に置換するようになりますので注意してください。
文字列の文字を削除して置換する場合
文字列の文字を削除して置換する場合は、translate()のパラメータである置換するテーブルの中に削除する文字を含めてマップ型で指定します。
例
1 2 3 4 5 6 7 |
str1 = 'フライテックが運営するITエンジニアの案件・求人情報サイト略して【フラテ】。' print('・置換前') print(str1) print('・置換後') translate = str1.maketrans("フライテック", "ふらいてっく", "フライ") print(str1.translate(translate)) |
出力結果
・置換前
フライテックが運営するITエンジニアの案件・求人情報サイト略して【フラテ】。
・置換後
てっくが運営するITエンジニアの案件・求人情報サト略して【て】。
translate()の置換するテーブルの中に削除する文字を含めてマップ型で指定することで、文字列の文字を削除して置換することができます。
そのため、「フライテック」の文字が「ふらいてっく」へ置換されますが、「フ」と「ラ」と「イ」の文字を除いたい状態で置換が行われます。
指定した複数の文字を置換する場合
置換するテーブルを辞書型で指定します。
例
1 2 3 4 5 6 7 |
str1 = 'フライテックが運営するITエンジニアの案件・求人情報サイト略して【フラテ】。' print('・置換前') print(str1) print('・置換後') translate = str.maketrans({'・': '、', '。': '!!'}) print(str1.translate(translate)) |
出力結果
・置換前
フライテックが運営するITエンジニアの案件・求人情報サイト略して【フラテ】。
・置換後
フライテックが運営するITエンジニアの案件、求人情報略して【フラテ】!!
translate()のパラメータに置換するテーブルを指定することで指定された複数の文字を置換することができます。
そのため、「・」が 「、」に「。」が「!!」に置き換えられて表示されています。
translate()で複数の文字をそれぞれ指定した文字で置換していますね!
そうですね。
translate()のパラメータに置換するテーブルを辞書型で指定することで、複数の文字をそれぞれ指定した文字で置換することができます。
そのため「、」や「。」みたいによく使う文字を置き換えたい場合はtranslate()を使用した方が良いですね。
今回のポイント
translate()で文字を置換
⚫︎ Pythonで文字を置換するにはtranslate()メソッドを使用する
⚫︎ 文字列の文字を置換するには、translate()メソッドのパラメータである置換するテーブルをマップ型で指定する
⚫︎ 文字列の文字を削除して置換するには、translate()メソッドのパラメータであるに置換するテーブルの中に削除する文字を含めてマップ型で指定する
⚫︎ 指定した複数の文字を置換するには、translate()メソッドのパラメータである置換するテーブルを辞書型を指定する
関連記事
Pythonのreplace()で指定した文字列を置換する方法についてはこちらをご参考ください。
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。