4-6节,python3应该如何去掉拼音的上标?

来源:4-6 如何去掉字符串中不需要的字符

慕运维2948618

2017-12-22

弄了很久,还是不会。

写回答

1回答

Billy2017

2017-12-24

import unicodedata,sys

u = 'èěéēàǎā'

# 在python3中无法通过shell得知组合字符的ASCII~
# 首先使用unicodedata.normalize() 将原始输入标准化为分解形式字符
a = unicodedata.normalize('NFD',u)

# 通过使用dict.fromkeys() 方法构造一个字典,每个Unicode和音调作为键,对应的值全部为None
# sys.maxunicode : 给出最大Unicode代码点的值的整数,即1114111(十六进制的0x10FFFF)。
# unicodedata.combining:将分配给字符chr的规范组合类作为整数返回。如果未定义组合类,则返回0
# 这样我们就成功将所有组合类的值全部设置为None
cmb_chrs = dict.fromkeys(c for c in range(sys.maxunicode) if unicodedata.combining(chr(c)))

# 再调用translate函数删除所有音调~
print(a.translate(cmb_chrs))


1
1
慕运维2948618
谢谢你哦~
2017-12-24
共1条回复

Python高效编程技巧实战

精选50个Python案例,源自实战,全面提升Python编程能力

2582 学习 · 360 问题

查看课程