gpt4 book ai didi

python - 发出打印字符串的单个字母

转载 作者:太空宇宙 更新时间:2023-11-04 10:06:16 25 4
gpt4 key购买 nike

我正在尝试打印单个字母,它适用于英文和中文拼音,但是当尝试使用其他字母时,我也会得到 unicode 字符(变音符号)

考虑这个词

महाभूकम्पले

当我尝试用键盘箭头键和空格将它分开时,这是 महाभूकम्पले 的结果,就像英文单词“EXAMPLE” 一样p>

E X A M P L E

म हा भू क म्प ले

现在,当我尝试运行 python 脚本以使用此代码自动执行此操作时

data= 'महाभूकम्पले'
index = 0
while index < len(data):
letter = data[index]
print (letter)
index = index + 1

我的结果是这样的:(它也分离了所有变音符号)












我需要的是这样的输出


हा
भू

म्प
ले

最佳答案

无需深入研究代码点语义的快速解决方案(希望如此)(否则最好参阅 Martin 的回答)。基于输出:

s = 'महाभूकम्पले'
for c in s:
print(c, unicodedata.category(c))

这是:

म Lo
ह Lo
ा Mc
भ Lo
ू Mn
क Lo
म Lo
् Mn
प Lo
ल Lo
े Mn

我们可以将这些类别(McMn)中的代码点与前面的代码点连接起来:

import unicodedata
from functools import reduce

def reducer(r, v):
if unicodedata.category(v) in ('Mc', 'Mn'):
r[-1] = r[-1] + v
else:
r.append(v)
return r

print(reduce(reducer, 'महाभूकम्पले', []))

输出对应于我在 gedit 中的组合字符数:

['म', 'हा', 'भू', 'क', 'म्', 'प', 'ले']

关于python - 发出打印字符串的单个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40860386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com