当我尝试在Python中计算翻译语言(泰米尔语)的字符串时,它没有给我正确的计数,为什么?

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

code

我尝试使用长度函数计算名称“KUMAR”的字符串,输出为 5,这是正确的。

但是当我尝试用不同的语言(泰米尔语)计算相同的名字时,我期望的输出是 3,因为 “குமார்”是泰米尔语中的三个字母单词,但输出为 6。

python python-3.x string function unicode
1个回答
0
投票

len()
函数计算 Unicode 代码点(表示 Unicode 标准中的字符的唯一数字)。我的猜测是,泰米尔语中的每个字符(字素)都由两个 Unicode 代码点组成,这就是
len()
的意义。

您可以使用

regex
(不是
re
)模块来获取正确的计数。

pip install regex

在此示例中:

import regex

def count_graphemes(text):
    return len(regex.findall(r'\X', text))


english_name = 'KUMAR'
tamil_name = 'குமார்'


print(f"Length of {english_name}: {count_graphemes(english_name)}")
print(f"Length of {tamil_name}: {count_graphemes(tamil_name)}")

输出为:

Length of KUMAR : 5
Length of குமார் : 3
© www.soinside.com 2019 - 2024. All rights reserved.