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