次のコードを書きたいと思います。
import string
frm = b'acdefhnoprstuw'
to = 'אקדיפהנופרסתאו'
trans_table = string.maketrans(frm, to)
hebrew_phrase = 'fear cuts deeper than swords'.translate(trans_table)
上記のコードは、to
パラメーターがstring.maketrans(frm, to)
文字列ではなくバイト シーケンスでなければならないため、機能しません。問題は、バイト シーケンスに ASCII リテラル文字しか含めることができないことです。したがって、英語の文字列をヘブライ語の文字列に変換する変換を行うことはできません。その理由はstring.maketrans()
、バイト オブジェクトを再実行するためです。
string.maketrans()
私のタスクにandtranslate()
関数 (またはユニコードで動作する同等の関数)を使用するエレガントな方法はありますか?