又一个奇葩要求,看看Python是如何将“中文”转“拼音”的?

举报
yd_226342373 发表于 2021/05/20 00:17:24 2021/05/20
【摘要】 这年头什么样子的需求都会出现,下面这张图就是很好的体现了。这就是说为啥要你学学Python啦!保不准你的领导会有各种奇葩需求,对于像Python这样的“万金油”编程语言来说,简直不是问题啦。 废话不多说,我们直接进入主题。 为了实现这个功能,今天我们使用的是pypinyin库,因此在使用之前需要我们提前安装一下,很方便。 pip install pypinyin ...

这年头什么样子的需求都会出现,下面这张图就是很好的体现了。这就是说为啥要你学学Python啦!保不准你的领导会有各种奇葩需求,对于像Python这样的“万金油”编程语言来说,简直不是问题啦。
在这里插入图片描述
废话不多说,我们直接进入主题。

为了实现这个功能,今天我们使用的是pypinyin库,因此在使用之前需要我们提前安装一下,很方便。

pip install pypinyin

  
 
  • 1

接着,来一个牛刀小试。

import pypinyin

x = "黄同学"
pypinyin.pinyin(x)

  
 
  • 1
  • 2
  • 3
  • 4

结果如下:
在这里插入图片描述
可以看到,此时返回的结果是一个列表嵌套,并且发现了没,这个拼音还带声调,哈哈,有没有感觉一下子回到了小学的拼音时代

此时我们是不是可以利用循环+切片获取到其中的每一个拼音。

for i in pypinyin.pinyin(x): print(i[0])

  
 
  • 1
  • 2

结果如下:
在这里插入图片描述
当然了,我们其实并不想要声调呀,又该怎么解决呢?这里有一个style参数,使用style=pypinyin.NORMAL参数,就可以直接去去除声调,不信你看。

x = "黄同学"
pypinyin.pinyin(x, style=pypinyin.NORMAL)

  
 
  • 1
  • 2

结果如下:
在这里插入图片描述
讲到这里,其实离着需求很近了,这里涉及到了几个经典的Python知识点,希望大家一定要学习一下,这个会经常使用。一个是join()函数,一个是enumerate()函数。

word = "黄同学"
s = ""
for index,value in enumerate(pypinyin.pinyin(word, style=pypinyin.NORMAL)): if index == 0: s += "".join(value) s += " " else: s += value[0][0]
s

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

结果如下:
在这里插入图片描述

文章来源: blog.csdn.net,作者:数据分析与统计学之美,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_41261833/article/details/108663543

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。