chciałbym napisać następujący kod:Python 3.x: Korzystanie string.maketrans() w celu stworzenia Unicode-znakowy transformację
import string
frm = b'acdefhnoprstuw'
to = 'אקדיפהנופרסתאו'
trans_table = string.maketrans(frm, to)
hebrew_phrase = 'fear cuts deeper than swords'.translate(trans_table)
Powyższy kod nie działa, ponieważ parametr to
do string.maketrans(frm, to)
musi być sekwencją bajtów, a nie ciągiem znaków. Problem polega na tym, że sekwencje bajtów mogą zawierać tylko literalne znaki ASCII. Dlatego nie mogę dokonać transformacji, która tłumaczy angielskie struny na hebrajskie ciągi. Powodem jest, że string.maketrans()
retruns obiekt bajtów.
Czy istnieje elegancki sposób korzystania z funkcji string.maketrans()
i równoważnych funkcji, które współpracują z Unicode dla mojego zadania?
Czy "ciąg importu" jest zawsze dobrym pomysłem? – snakile
@snakile: Niezbyt często, ale istnieją do tego użyteczne zastosowania: http://docs.python.org/py3k/library/string –