如何将组合字符表示为一个字符

问题描述 投票:0回答:2

我有以下组合变音符号字符

[ọ́、ẹ̀、ẹ̀、ẹ́]

。当通过像

这样的字符串中的字符串索引访问它们时,我希望将它们保留为一个字符

“ọ̀rẹ̀”

例如当前的分割是:


s = "ọ̀rẹ̀"
 
 s[0] = ò  
 s[1] = . 
 s[2] = r 
 s[3] = è 
 s[4] = .

如何让 s[0] 和 s[1] 成为一个字符而不是原始字符串中的两个字符?

有什么想法如何在 python 中完成这个工作吗?

python diacritics
2个回答
0
投票

解决方案。

import unicodedata

def combinedchars(string):
    result = []
    for char in string:
        if unicodedata.combining(char):
            result[-1] += char
        else:
            result.append(char)
    return(result)

s = "Borbá̭ra̭"
print(list(s))

给予

['B', 'o', 'r', 'b', 'á', '̭', 'r', 'a', '̭']

将变音标记组合为分隔字符。

2.

print(combinedchars(s))

给出所需的输出

['B', 'o', 'r', 'b', 'á̭', 'r', 'a̭']

处理将变音符号与前面的字符组合在一起。


-1
投票

如果您想从列表字符创建字符串,只需使用

join
方法

x = ['ọ́', 'ọ̀', 'ẹ̀', 'ẹ́']
print("".join(x))
© www.soinside.com 2019 - 2024. All rights reserved.