python成语接龙代码_#python# 成语接龙(二)
寻找可以“一招制敌”的成语。# 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# 成语接龙(二)相关推荐
- python成语接龙代码_实现成语接龙(Python)
目录 前言 要实现的规则如下:根据接龙的成语的第一个字与前一个成语结尾的字的比较,分一下三种模式模式1:字相同拼音也要相同 模式2:字相同拼音不要求相同 模式3:字不要相同拼音要求相同,即谐音就可以接 ...
- python成语接龙代码_#python# 成语接龙(一)
本来想写一个机器人成语接龙的,太复杂了,弄一个可以找到所有的可以"一招制敌"的成语,就是没办法再被接龙的成语. 第一步是找一个带拼音的成语字库,网上找了半天,没找到合适的,发现搜狗 ...
- python田字格函数简化代码_[Python]使用生成器来简化代码
原本只是大概知道生成器是什么,但一直不知道怎么用,或是什么情景下用,后来才发现: 在需要一边读数据一边处理任务时,如果直接为每个任务都写一个函数,那么读数据的部分就要在每个函数都重复一遍 直接将所有任 ...
- python写一些小代码_#python#自己写的一段小代码
代码如下: __author__ = 'Administrator' DEFAULT_TENANT_ID = 1234 DEFAULT_ROLE_ID = 1234 TENANT_ID = int(i ...
- python 归一化feed-dict程序代码_深度学习-中国大学mooc-题库零氪
第一讲 人工智能导论 2.29日考勤 1.以下关于深度学习和机器学习的关系,描述正确的是: A.机器学习的范畴包含深度学习: B.深度学习的范畴包含机器学习: C.二者没有关系: D.二者等同. 第三 ...
- python皮卡丘编程代码_再接再厉,用python编程13行代码解方程组(纯字符)
因为是示例为主,我们将方程组限制在二元一次方程组:x,y两个变量,两个方程.类似这样: 每个方程有两个变量,x和y,形式为:ax+by+c=d 由于这次有了两个方程,我们提取参数的代码就适合提炼为一个 ...
- python怎么测试c代码_如何正确测试python中的C-API,C-API返回错误代码
我的设置 我正在使用Python中的pytest和ctypes测试C库中的函数.C库中的每个函数调用一个嵌入式linux PCI板上的函数,然后C库函数返回一个整数,该整数映射到一组返回代码.如果函数 ...
- python执行一段代码_我发现了个 Python 黑魔法,执行任意代码都会自动念上一段 『平安经』...
最近的"平安经"可谓是引起了不小的风波啊. 作为一个正儿八经的程序员,最害怕的就是自己的代码上线出现各种各样的 BUG. 为此明哥就研究了一下,如何在你执行任意 Python 代码 ...
- python函数模块关键代码_从零开始学Python(六):函数,模块和类的使用
从这章开始,我们不在使用sublime文本编译器进行编码了,主要是我们每次运行的使用还得去命令行执行pyhon ***.py命令查看结果,操作比较麻烦.推荐大家使用Pycharm(具体安装使用教程大家 ...
最新文章
- 语音文件转成文字怎么转
- 三代测序关键计算技术开发及应用
- 《Python从小白到大牛》第6章 数据类型
- 移动端取消button点击出现阴影效果
- ysoserial java 反序列化 Groovy1
- snowflake算法 php,PHP实现Snowflake生成分布式唯一ID的方法示例
- 观察者模式 Observer
- 十年前的网易,新浪,维基百科,百度百科在手机上的打开效果
- java GUI怎么输入_在Swing中创建Java GUI以进行表单输入
- 【渝粤教育】国家开放大学2018年秋季 0734-22T出纳实务 参考试题
- 物联网在水位监测中的应用
- C++学习之路 | PTA(甲级)—— 1043 Is It a Binary Search Tree (25分)(带注释)(精简)
- 管理实践-教练技术的应用
- 知乎:tomcat 与 nginx,apache的区别是什么?
- GAN造图MINST手写数字
- 广告投放系统数据表设计
- IP地址归属地查询算法
- 转载自www.dezai.cn 常用sql统计
- 如何建立Multi-Step(多步预测)的LSTM时间序列模型(以对家庭用电预测为例)
- css3实现简单的文字动画效果