Получение последнего символа из строки, которая может быть или не быть UnicodePython

Программы на Python
Anonymous
Получение последнего символа из строки, которая может быть или не быть Unicode

Сообщение Anonymous »

Я анализирую файл, который содержит как альфа-строки, так и строки Unicode/UTF-8, содержащие произношение IPA.
Я хочу иметь возможность получить последний символ строки, но иногда эти символы занимают два пробела, например
syl = 'tyl' # plain ascii
last_char = syl[-1]
# last char is 'l'

syl = 'tl̩' # contains IPA char
last_char = syl[-1]
# last char erroneously contains: '̩' which is a diacritical mark on the l
# want the whole character 'l̩'

Если я попытаюсь использовать .decode(), произойдет сбой:

'str' объект не имеет атрибута "декодировать"

Если я попытаюсь использовать .encode().decode(), я вернусь туда, где я началось с того, что я просто получил диакритический знак вместо полного символа.
Как получить последний символ строки Unicode/UTF-8 (если вы не знаете, является ли это Ascii или строка Юникода)?
Думаю, я мог бы использовать таблицу поиска известных символов, и если это не удастся, вернуться и взять syl[-2:]. Есть ли более простой способ?

В ответ на некоторые комментарии, вот полный список символов IPA, которые я собрал на данный момент:
a, b, d, e, f, f̩, g, h, i, i̩, i̬, j, k,
l, l̩, m, n, n̩, o, p, r, s, s̩, t, t̩, t̬,
u, v, w, x, z, æ, ð, ŋ, ɑ, ɑ̃, ɒ, ɔ, ə,
ɚ, ɛ, ɜ, ɜ˞, ɝ, ɡ, ɪ, ɵ, ɹ, ɾ, ʃ, ʃ̩, ʊ,
ʌ, ʒ, ʤ, θ, ∅,


Подробнее здесь: https://stackoverflow.com/questions/789 ... be-unicode

Вернуться в «Python»