2016-01-12 32 views
6

Ich arbeite an einem Werkzeug, um automatische spanische Verbkonjugation zu machen. In einer Zeitform besteht die Regel darin, den letzten Vokal zu betonen.Wie füge ich einem Buchstaben Akzente hinzu?

Während ich eine Karte erstellen kann, um die akzentuierte Version eines Buchstabens zu erhalten, habe ich mich gefragt, ob es eine saubere, pythische Art gibt, Zeichen zu manipulieren, um diakritische Zeichen hinzuzufügen (ich denke, ich habe den richtigen Begriff).

Zum Beispiel:

fue -> fué 

presta -> prestá 

usw.

+2

Es gibt Unicode Kombinationszeichen, die Sie auf das Zeichen nur anfügen können. Jede gute Unicode-Referenz wird Ihnen sagen, was sie sind. –

+1

Link zu dem, worüber @MarkRansom redet: https://en.wikipedia.org/wiki/Combining_character Es wäre immer noch schön, eine richtige Antwort mit Beispielcode zu sehen, obwohl – mastazi

+0

@MarkRansom, wie man das in Python macht? – Pat

Antwort

6

Es ist auf der Codierung ab, die Sie verwenden möchten. Wenn Sie die lateinische Codierung verwenden, ist eine Zeichenkarte der richtige Weg. Wenn Sie Unicode verwenden, könnte es besser sein, combining characters zu verwenden; die Unicode-Zeichen für eine Akut ist ‚\ u0301‘, und es kommt nach dem Schreiben Sie es um die Anwendung sind:

In [40]: 'fue'+ u'\u0301' 
Out[40]: 'fué' 
+0

Danke. Mir war nicht bewusst, dass es genauso einfach war, den Akzent als einen anderen Charakter hinzuzufügen. – Pat

+2

@Pat Sie müssen vorsichtig sein, Unicode enthält mehrere Akzentzeichen. Du brauchst ein * kombinierendes * Zeichen, welches [U + 0301] (http://www.fileformat.info/info/unicode/char/0301/index.htm) ist. –

Verwandte Themen