昨天找到了新华字典的json就很开心,想到了一个顶俩那个项目,自己也想做一个接到口谐辞给。(因为没有给字开头的成语)
思路
算法过程其实很简单,就是广搜就可以,使用队列这个数据结构,每次pop一个,然后push进来一组当前读音的扩展。在此基础上进行广搜遍历,然后当满足输入要求的时候就停止。
扩展包
-
pypinyin
扩展包地址传送门 -
unicodedata anaconda好像自带?我这里可以直接import
成语词典数据来源
https://github.com/mozillazg/python-pinyin
嫌GitHub慢的也可去
http://ggalaxy.top/file/idiom.json自取
代码
import json
import pypinyin
import unicodedata
#广搜,用队列
flag = 0
def judge(a,b):
if(unicodedata.normalize('NFKD', pypinyin.lazy_pinyin(a)[0]).encode('ascii','ignore') == unicodedata.normalize('NFKD', pypinyin.lazy_pinyin(b)[0]).encode('ascii','ignore')):
return True
else:
return False
def display(c):#传进来一个字符串
list_play = c.split("+")
#print(list_play)
for i in range(len(list_play)-1):
print("第"+str(i)+"个成语:",end = "")
<