又一個(gè)奇葩要求,Python是如何將“中文”轉(zhuǎn)“拼音”的?
這年頭什么樣子的需求都會(huì)出現(xiàn),下面這張圖就是很好的體現(xiàn)了。這就是說為啥要你學(xué)學(xué)Python啦!保不準(zhǔn)你的領(lǐng)導(dǎo)會(huì)有各種奇葩需求,對于像Python這樣的“萬金油”編程語言來說,簡直不是問題啦。
廢話不多說,我們直接進(jìn)入主題。
為了實(shí)現(xiàn)這個(gè)功能,今天我們使用的是pypinyin庫,因此在使用之前需要我們提前安裝一下,很方便。
- pip install pypinyin
 
接著,來一個(gè)牛刀小試。
- import pypinyin
 - x = "黃同學(xué)"
 - pypinyin.pinyin(x)
 
結(jié)果如下:
可以看到,此時(shí)返回的結(jié)果是一個(gè)列表嵌套,并且發(fā)現(xiàn)了沒,這個(gè)拼音還帶聲調(diào),哈哈,有沒有感覺一下子回到了小學(xué)的拼音時(shí)代。
此時(shí)我們是不是可以利用循環(huán)+切片獲取到其中的每一個(gè)拼音。
- for i in pypinyin.pinyin(x):
 - print(i[0])
 
結(jié)果如下:
當(dāng)然了,我們其實(shí)并不想要聲調(diào)呀,又該怎么解決呢?這里有一個(gè)style參數(shù),使用style=pypinyin.NORMAL參數(shù),就可以直接去去除聲調(diào),不信你看。
- x = "黃同學(xué)"
 - pypinyin.pinyin(x, style=pypinyin.NORMAL)
 
結(jié)果如下:
講到這里,其實(shí)離著需求很近了,這里涉及到了幾個(gè)經(jīng)典的Python知識(shí)點(diǎn),希望大家一定要學(xué)習(xí)一下,這個(gè)會(huì)經(jīng)常使用。一個(gè)是join()函數(shù),一個(gè)是enumerate()函數(shù)。
- word = "黃同學(xué)"
 - 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
 
結(jié)果如下:




















 
 
 






 
 
 
 