字符串转拼音:pypinyin库的使用
这个库很简单,重要的也就2个功能,即pinyin()与lazy_pinyin,重点关注一下二者返回结果的差别,前者单个汉字一个列表(可以包含单个汉字的多音),后者一维(单个汉字一个元素,不能包含单个汉字的多音)。然后再关注一下非汉字字符的处理结果,这个库你就学的大差不差了。对于字符串列表,推荐使用遍历循环,而不是直接作为输入传入。
1 pypinyin.pinyin()
将汉字转为拼音,返回汉字的拼音列表(二维)
重要的参数
hans:
汉字的字符串或列表(一般习惯通过遍历的方式,而不是传入列表)
style:拼音风格,默认为
TONE
heteronym:是否启用多音字
返回结果
汉字列表
from pypinyin import pinyin, Style
# 最普通的方式
print(pinyin("中心"))
# 返回:[['zhōng'], ['xīn']]
# 返回汉字的多个音调,及多音字的处理
print(pinyin("中心", heteronym=True))
# 返回:[['zhōng', 'zhòng'], ['xīn']]
# 设置返回的格式,默认为TONE,一般使用NORMAL进行处理
print(pinyin("中心", style=Style.TONE))
# [['zhōng'], ['xīn']]
print(pinyin("中心", style=Style.NORMAL))
# [['zhong'], ['xin']]
print(pinyin("中心", style=Style.TONE2))
# [['zho1ng'], ['xi1n']]
print(pinyin("中心", style=Style.TONE3))
# [['zhong1'], ['xin1']]
print(pinyin("中心", style=Style.INITIALS))
# [['zh'], ['x']]
print(pinyin("中心", style=Style.FIRST_LETTER))
# [['z'], ['x']]
print(pinyin("中心", style=Style.FINALS))
# [['ong'], ['in']]
print(pinyin("中心", style=Style.FINALS_TONE))
# [['ōng'], ['īn']]
# 其他情况
print(pinyin("标点符号,:。与英文abcABC", style=Style.NORMAL))
# [['biao'], ['dian'], ['fu'], ['hao'], [',:。'], ['yu'], ['ying'], ['wen'], ['abcABC']]
2 pypinyin.lazy_pinyin
将汉字转换为拼音,返回不包含多音字结果的拼音列表(一维)
重要的参数
hans:字符串
style:拼音风格,默认为NORMAL
from pypinyin import lazy_pinyin, Style
print(lazy_pinyin("示例字符"))
# ['shi', 'li', 'zi', 'fu']
print(lazy_pinyin("示例字符", style=Style.TONE))
# ['shì', 'lì', 'zì', 'fú']
print(lazy_pinyin("示例字符", style=Style.INITIALS))
# ['sh', 'l', 'z', 'f']
print(lazy_pinyin("示例字符", style=Style.FIRST_LETTER))
# ['s', 'l', 'z', 'f']