首页 > 解决方案 > 比较 unicode 字符与组合变音符号

问题描述

    Dictionary={
         "b":"कू", 
         "c":"कु",
         "x":"श",

         "A":"क"


def marathi(message):
    dec=''
    for letter in message:  
        for key, value in MARATHI.items():
             if letter == value:
               dec+=key
    print(dec) 



    returning_key_for_value_String='शकुकू'

    marathi(returning_key_for_value_String)
    #output=xAA

在运行该函数以从字典的值中取回键时,该函数将“कू”的键提供为“A”,但它应该返回“b”。看起来该函数仅采用“क” ;,因此预期的输出不会到来。

标签: python-3.xunicode

解决方案


您需要将字符串划分为字形簇,因为它实际上包含字母和非间距组合标记:

>>> list('शकुकू')
['श', 'क', 'ु', 'क', 'ू']

则表达式模块可以通过模式提取它们\X

>>> import regex
>>> regex.findall(r'\X', 'शकुकू')
['श', 'कु', 'कू']

资源

然后,您可以将这些单个字符中的每一个与您的参考字典进行比较。


推荐阅读