如何在python中逐字符遍历unicode泰米尔单词字符?

如何在python中逐字符遍历unicode泰米尔单词字符?,python,regex,python-2.7,tamil,Python,Regex,Python 2.7,Tamil,我想知道一个Unicode字符串(泰米尔语)中有多少个字符,然后检查字符1和字符2是否出现特定情况。 我能够将单词拆分为字符,但我不知道如何使用单词长度逐个字符地遍历它们 示例:单词:எஃகு". 它应该不会返回3个字符,并且我应该能够将单词[0]打印为'எ', 单词[1]as'ஃ' 而单词[2]是'கு'. 我想检查一下: if word[0] is a vowel: if word[1] is "ஃ": then print word[0]+wo

我想知道一个Unicode字符串(泰米尔语)中有多少个字符,然后检查字符1和字符2是否出现特定情况。
我能够将单词拆分为字符,但我不知道如何使用单词长度逐个字符地遍历它们

示例:单词:எஃகு".
它应该不会返回3个字符,并且我应该能够将单词[0]打印为'எ', 单词[1]as'ஃ' 而单词[2]是'கு'.

我想检查一下:

    if word[0] is a vowel:
        if word[1] is "ஃ":
           then print word[0]+word[1]+word[3] (as எஃகு)
        else:
           print word[0] 
我想使用no.of.char进行遍历,如果no.of.char是3,那么I=0应该可以帮助我处理எ'.
我看到了许多与Unicode字符处理和长度处理相关的问题。但它们要么返回字节长度,要么给出不同的结果。所以我感到困惑

我用于按字符拆分它们的代码:

    for line in f.readlines():
       letters = utf8.get_letters(line)
       for letter in letters:
          ff.write(unicode(letter))
          ff.write(' ')
示例输入文件:

அன்று
அதாவது
அஃதான்று

示例输出文件:

அ ன் று
அ தா வ து
அ ஃ தா ன் று

包装

pip install Open-Tamil
代码


你的字符串是
unicode
对象还是
str
对象?你能举一个例子,说明你有哪些代码可以创建/操作这样的字符串吗?听起来像是广告,因为值得注意的是
”எஃகு
中有四个Unicode代码点,而不是三个。您可以使用
list()எஃகு”
(如果您使用的是Python 3),您将得到
['எ', 'ஃ', 'க', 'ு']
@BrenBarn我已经给出了示例输入文件。我对泰米尔语一无所知,但是…不会
l=Tamil.utf8.get_letters(str)
返回一个字母列表?您可以使用
l[0]
l[1]
l[2]
?字符数
len(l)
?这是一个很好的示例代码。我建议对源字符串使用一个不同于
str
的名称,以避免通过testring类名称隐藏内置名。@Blckknght:这一点很好。我不是Pythonista,
str
-as类型完全没有进入我的脑海。你的代码和我的代码之间的区别在于我正在读取文件,因此无法在字符串前面加上“u”。我想这就是它为我返回4的原因。我如何从文件中读取并在字符串前面加上“u”“。您的代码确实返回3。感谢您的帮助。这完全是另一个主题,与泰米尔语无关,但与编码以及
str
unicode
类型之间的差异有关。请阅读。简短回答-使用
line.decode('utf-8'))
而不是
line
。忽略这一点-您已经有了
unicode
字符串,因为否则
utf.get\u letters
根本不起作用。因此,您这边还有其他问题。此外,如果for循环给您3个结果,那么
len()
就不可能给您4个结果。
from tamil import utf8
string = u"எஃகு"
letters = utf8.get_letters(string)
print(len(letters))
# 3. Not 4. 
print(letters)
# [u'\u0b8e', u'\u0b83', u'\u0b95\u0bc1']
for letter in letters:
    print(letter)
# எ
# ஃ
# கு