Python 3.x: Verwenden von string.maketrans (), um eine Unicode-Zeichenumwandlung zu erstellen

8

Ich möchte den folgenden Code schreiben:

%Vor%

Der obige Code funktioniert nicht, weil der to -Parameter für string.maketrans(frm, to) eine Bytefolge sein muss, keine Zeichenfolge. Das Problem besteht darin, dass Bytefolgen nur ASCII-Literalzeichen enthalten können. Daher kann ich keine Umwandlung vornehmen, die englische Zeichenfolgen in hebräische Zeichenfolgen übersetzt. Der Grund dafür ist, dass string.maketrans() ein Byteobjekt zurückholt.

Gibt es eine elegante Möglichkeit, die Funktionen string.maketrans() und translate() (oder äquivalente Funktionen, die mit Unicode funktionieren) für meine Aufgabe zu verwenden?

    
snakile 26.04.2012, 07:52
quelle

1 Antwort

13

Sie müssen str.maketrans () verwenden, das zwei Str als Argumente benötigt.

%Vor%

String.maketrans war in Python 3.1 noch vorhanden, aber nur deshalb, weil sie es vermissten, sie in 3.0 auf bytes.maketrans () zu verschieben. Es war in 3.1 bereits veraltet und in 3.2 ist es weg.

    
Lennart Regebro 26.04.2012, 10:02
quelle

Tags und Links