2021年11月9日火曜日

【文字列】translateによる文字の変換

 translateにより文字を別の文字(または文字列)に変換される。translateによる変換は、str.maketransにより作成した変換テーブルに基づいて行われる。




1. 文字列による変換テーブル

translateの書式は以下の通り。

str.translate(table)

 文字列strが変換テーブルtableに基づいて変換される。


 変換テーブルの作成にはstr.maketransを使う。
str.maketransの書式は以下の通り。

static str.maketrans(x[, y[, z]])

引数xが変換前の文字を結合した文字列、yが変換後の文字を結合した文字列、zは削除する文字を結合した文字列でオプション。xyの文字列に含まれる文字が順番に一対一で変換される。


 '1'→'1'、'2'→'2'・・・と全角を半角に変換し'¥'を削除する例。

table = str.maketrans('1234567890', 
                      '1234567890',
                      '¥')
print('今日の売り上げは¥45800円でした'.translate(table))

実行結果

今日の売り上げは45800円でした


2. 辞書による変換テーブル

 文字列により作成した変換テーブルを用いた場合、1文字→1文字の変換となるが、1文字→文字列の変換をする場合には辞書を使って変換テーブルを作成する。


'巌'→'岩', '忽'→'たちま'と変換する例。

table = str.maketrans({'巌':'岩', '忽':'たちま'})
print('巌穴の一点の光明は忽ち失せて'.translate(table))

実行結果

岩穴の一点の光明はたちまち失せて

 translateでは文字列→文字(文字列)の変換はできない。その場合はreplaceを使う。



3. リファレンス

Python 標準ライブラリ > static str.maketrans(x[, y[, z]])
Python 標準ライブラリ > str.translate(table)

使用バージョン:Python 3.8.8

0 件のコメント:

コメントを投稿