1.はじめに
文字列内の文字を変換したり削除したりしたい時に便利なPython3の関数があります。
それがstr.traslate()です。
str.translate()は変換テーブルを使って文字列を変換する関数です。
2.例題
例えば、ネット将棋の棋譜データは消費時間や手数などのノイズがついているため、ブログに載せる時には削除する必要があります。
これを全て手作業で消すのは大変なので、これをプログラムで削除します。
削除前のデータ
1 7六歩(77) ( 0:03/00:00:03)
2 3四歩(33) ( 0:06/00:00:06)
3 2六歩(27) ( 0:04/00:00:07)
4 4四歩(43) ( 0:10/00:00:16)
削除後のデータ
7六歩 3四歩 2六歩 4四歩
きれいになりました。
3.コードを見てみましょう
1行目はtableという変数にstr.maketransという関数を代入します。
2行目は:(カンマ)の左側に変換前の文字(この場合は"(")
:(カンマ)の右側に変換後の文字(この場合は"空白")を設定します。
そして変換した文字を入れ切ったら
変数にresultにtext.translate()関数を代入し、引数をtableとします。
str_translete.py
table = str.maketrans({
'(': '', # (を空白に変換
')': '', # )を空白に変換
':': '', # :を空白に変換
'1': '', # 以下割愛
'2': '',
'3': '',
'4': '',
'5': '',
'6': '',
'7': '',
'8': '',
'9': '',
'0': '',
'/': '',
})
result = text.translate(table)
result
4.まとめ
サンプルコードはGoogle Colaboratoryに載せました。
5.参考URL
[文字の変換にはstr.translate()が便利]
(https://qiita.com/tag1216/items/df6c93bdb823dd48af6c)