寻找可以“一招制敌”的成语。# encoding=utf8

import matplotlib.pyplot as plt

def get_idioms(file):

"""

获取所有成语

返回值:[ ['正襟危坐', 'zheng.jin.wei.zuo'], ['正人君子', 'zheng.ren.jun.zi'], ... ]

"""

idioms = []

with open(file, "r") as f:

idioms = [x.strip('\n').split(' ') for x in f.readlines()]

return idioms

def get_start_pinyin_set(idioms):

"""

获取成语的第一个字的拼音集合

"""

start_pinyin_set = {}

for idiom in idioms:

[hz, py] = idiom

start = py.split('.')[0] # 成语第一个字拼音

if start not in start_pinyin_set:

start_pinyin_set[start] = [(hz, py)]

else:

start_pinyin_set[start].append((hz, py))

return start_pinyin_set

def check_idiom_dead(idioms, start_pinyin_set):

"""

找出无法被接龙的成语

"""

idiom_dead = {}

for idiom in idioms:

[hz, py] = idiom

last = py.split('.')[-1] # 成语最后一个字拼音

if last not in start_pinyin_set:

if last not in idiom_dead:

idiom_dead[last] = [(hz, py)]

else:

idiom_dead[last].append([(hz, py)])

return idiom_dead

def idiom_dead_stat(idiom_dead):

"""

统计无法被接龙成语的最后一个字的拼音

"""

data = sorted([(len(idiom_dead[py]), py)

for py in idiom_dead], reverse=True)

y = [d[0] for d in data]

y_py = [d[1] for d in data]

x = range(0, len(y)) plt.figure(figsize=(10, 6))

plt.bar(x, y, color='g')

plt.xticks(x, y_py)

plt.title('idiom dead', y=0.9)

plt.show()

pass

if __name__ == "__main__":

idioms = get_idioms(u"成语大全.txt")

start_pinyin_set = get_start_pinyin_set(idioms)

idiom_dead = check_idiom_dead(idioms, start_pinyin_set)

idiom_dead_stat(idiom_dead)

pass

统计结果:

python成语接龙代码_#python# 成语接龙(二)相关推荐

  1. python成语接龙代码_实现成语接龙(Python)

    目录 前言 要实现的规则如下:根据接龙的成语的第一个字与前一个成语结尾的字的比较,分一下三种模式模式1:字相同拼音也要相同 模式2:字相同拼音不要求相同 模式3:字不要相同拼音要求相同,即谐音就可以接 ...

  2. python成语接龙代码_#python# 成语接龙(一)

    本来想写一个机器人成语接龙的,太复杂了,弄一个可以找到所有的可以"一招制敌"的成语,就是没办法再被接龙的成语. 第一步是找一个带拼音的成语字库,网上找了半天,没找到合适的,发现搜狗 ...

  3. python田字格函数简化代码_[Python]使用生成器来简化代码

    原本只是大概知道生成器是什么,但一直不知道怎么用,或是什么情景下用,后来才发现: 在需要一边读数据一边处理任务时,如果直接为每个任务都写一个函数,那么读数据的部分就要在每个函数都重复一遍 直接将所有任 ...

  4. python写一些小代码_#python#自己写的一段小代码

    代码如下: __author__ = 'Administrator' DEFAULT_TENANT_ID = 1234 DEFAULT_ROLE_ID = 1234 TENANT_ID = int(i ...

  5. python 归一化feed-dict程序代码_深度学习-中国大学mooc-题库零氪

    第一讲 人工智能导论 2.29日考勤 1.以下关于深度学习和机器学习的关系,描述正确的是: A.机器学习的范畴包含深度学习: B.深度学习的范畴包含机器学习: C.二者没有关系: D.二者等同. 第三 ...

  6. python皮卡丘编程代码_再接再厉,用python编程13行代码解方程组(纯字符)

    因为是示例为主,我们将方程组限制在二元一次方程组:x,y两个变量,两个方程.类似这样: 每个方程有两个变量,x和y,形式为:ax+by+c=d 由于这次有了两个方程,我们提取参数的代码就适合提炼为一个 ...

  7. python怎么测试c代码_如何正确测试python中的C-API,C-API返回错误代码

    我的设置 我正在使用Python中的pytest和ctypes测试C库中的函数.C库中的每个函数调用一个嵌入式linux PCI板上的函数,然后C库函数返回一个整数,该整数映射到一组返回代码.如果函数 ...

  8. python执行一段代码_我发现了个 Python 黑魔法,执行任意代码都会自动念上一段 『平安经』...

    最近的"平安经"可谓是引起了不小的风波啊. 作为一个正儿八经的程序员,最害怕的就是自己的代码上线出现各种各样的 BUG. 为此明哥就研究了一下,如何在你执行任意 Python 代码 ...

  9. python函数模块关键代码_从零开始学Python(六):函数,模块和类的使用

    从这章开始,我们不在使用sublime文本编译器进行编码了,主要是我们每次运行的使用还得去命令行执行pyhon ***.py命令查看结果,操作比较麻烦.推荐大家使用Pycharm(具体安装使用教程大家 ...

最新文章

  1. 语音文件转成文字怎么转
  2. 三代测序关键计算技术开发及应用
  3. 《Python从小白到大牛》第6章 数据类型
  4. 移动端取消button点击出现阴影效果
  5. ysoserial java 反序列化 Groovy1
  6. snowflake算法 php,PHP实现Snowflake生成分布式唯一ID的方法示例
  7. 观察者模式 Observer
  8. 十年前的网易,新浪,维基百科,百度百科在手机上的打开效果
  9. java GUI怎么输入_在Swing中创建Java GUI以进行表单输入
  10. 【渝粤教育】国家开放大学2018年秋季 0734-22T出纳实务 参考试题
  11. 物联网在水位监测中的应用
  12. C++学习之路 | PTA(甲级)—— 1043 Is It a Binary Search Tree (25分)(带注释)(精简)
  13. 管理实践-教练技术的应用
  14. 知乎:tomcat 与 nginx,apache的区别是什么?
  15. GAN造图MINST手写数字
  16. 广告投放系统数据表设计
  17. IP地址归属地查询算法
  18. 转载自www.dezai.cn 常用sql统计
  19. 如何建立Multi-Step(多步预测)的LSTM时间序列模型(以对家庭用电预测为例)
  20. css3实现简单的文字动画效果

热门文章

  1. 餐巾(cogs 461)
  2. 关于java中equals与==的区别的小实验
  3. 如何解决wampmysqld服务无法启动,错误id=1067
  4. 程序编译过程与软件启动过程
  5. 奇门遁甲鸣法 第四章 正格
  6. Register Delphi ,Delphi 不能运行
  7. 【信息系统项目管理师】第12章-项目采购管理 知识点详细整理
  8. 基于Python3-Pygame的乒乓球游戏
  9. blender国内下载
  10. Mac上Jupyter notebook代码补全