当前位置:   article > 正文

python将汉字转化为拼音_python汉字转拼音

python汉字转拼音

python将汉字转化为拼音

安装

依赖python包:pypinyin 直接pip install pypinyin即可

常用方法及场景案例

  1. from pypinyin import pinyin, lazy_pinyin, Style
  2. # 汉字转化为拼音
  3. hanzitopinyin = pinyin("中国")
  4. # print(hanzitopinyin) # [['zhōng'], ['guó']]
  5. # 开启多音字
  6. duoyinzi = pinyin("和朴", heteronym=True)
  7. # print(duoyinzi) # [['hé', 'hè', 'huò', 'huó', 'hú'], ['pǔ', 'pò', 'pū', 'pō', 'piáo']]
  8. # 设置风格 FIRST_LETTER首字母风格,只返回拼音的首字母部分。
  9. style = pinyin("中心", style=Style.FIRST_LETTER)
  10. # print(style) # [['z'], ['x']]
  11. # 不考虑多音字的情况
  12. ret = lazy_pinyin("中心")
  13. # print(ret) # ['zhong', 'xin']
  14. """
  15. 需求场景:添加账号,传入中文姓名,将中文姓名自动转化为拼音,若有姓名重复,在后面按升序加1
  16. 如:传入张三,需要得到zhangs,已存在张三,需要得到zhangs1
  17. """
  18. # 已存在用户
  19. user_list = ["wumj", "qinsh", "liub"]
  20. print("已经存在的用户有:{}".format(user_list))
  21. def get_user(new_user_list):
  22. """
  23. 和已知用户比对,得到最终账号
  24. :param new_user_list: 中文姓名转化后的账号名
  25. :return:
  26. """
  27. print("姓名转化后的用户有:{}".format(new_user_list))
  28. username_list = []
  29. for new_user in new_user_list:
  30. i = 1
  31. while True:
  32. username = new_user
  33. if username in user_list:
  34. username = username + str(i)
  35. i += 1
  36. if username not in user_list:
  37. username_list.append(username)
  38. break
  39. elif username not in user_list:
  40. username_list.append(username)
  41. break
  42. print("最终需要添加的用户为:{}".format(username_list))
  43. def name_to_user(name_list):
  44. """
  45. 将中文姓名按要求转化为拼音(账号样式)
  46. :param name_list: 姓名列表
  47. :return:
  48. """
  49. new_user_list = []
  50. for name in name_list:
  51. # 将中文姓名转化为拼音
  52. user = lazy_pinyin(name)
  53. # print(user)
  54. # 返回结果为 姓 和 名 的列表,账号由姓的拼音全称+名的第一个字母组成
  55. user_len = len(user)
  56. new_user = ""
  57. i = 0
  58. while i < user_len:
  59. if i == 0:
  60. new_user += user[i]
  61. else:
  62. new_user += user[i][:1]
  63. i += 1
  64. if i == user_len:
  65. break
  66. new_user_list.append(new_user)
  67. # print(new_user_list)
  68. get_user(new_user_list)
  69. def main():
  70. name_str = input("请输入中文姓名:")
  71. # 输入姓名转化为列表
  72. name_list = name_str.split()
  73. name_to_user(name_list)
  74. if __name__ == '__main__':
  75. main()
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/153694?site
推荐阅读
相关标签
  

闽ICP备14008679号