Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)


Posted in Python onDecember 14, 2020

使用递归实现

words = ['giraffe', 'elephant', 'ant', 'tiger', 'racoon', 'cat', 'hedgehog', 'mouse']
def get_results(_start, _current, _seen):
 if all(c in _seen for c in words if c[0] == _start[-1]):
  yield _current
 else:
   for i in words:
    if i[0] == _start[-1]:
     yield from get_results(i, _current+[i], _seen+[i])

new_d = [list(get_results(i, [i], []))[0] for i in words]
final_d = max([i for i in new_d if len(i) == len(set(i))], key=len)

输出:

['hedgehog', 'giraffe', 'elephant', 'tiger', 'racoon']

工作原理类似于广度优先搜索,因为只要当前值之前没有被调用,get_results函数就会继续遍历整个列表。函数已经查找过的值被添加到_seen列表中,最终停止递归调用流。这个解决方案也会忽略重复的结果,

words = ['giraffe', 'elephant', 'ant', 'ning', 'tiger', 'racoon', 'cat', 'hedgehog', 'mouse',]
new_d = [list(get_results(i, [i], []))[0] for i in words]
final_d = max([i for i in new_d if len(i) == len(set(i))], key=len)

输出:

['ant', 'tiger', 'racoon', 'ning', 'giraffe', 'elephant']

到此这篇关于Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)的文章就介绍到这了,更多相关Python 排序最长英文单词链内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
Jul 11 Python
使用Python发送邮件附件以定时备份MySQL的教程
Apr 25 Python
Python3 Post登录并且保存cookie登录其他页面的方法
Dec 28 Python
Python中的heapq模块源码详析
Jan 08 Python
解决pycharm工程启动卡住没反应的问题
Jan 19 Python
PyQt5组件读取参数的实例
Jun 25 Python
Python操作注册表详细步骤介绍
Feb 05 Python
Python 统计位数为偶数的数字代码详解
Mar 15 Python
python简单的三元一次方程求解实例
Apr 02 Python
django为Form生成的label标签添加class方式
May 20 Python
Pythonic版二分查找实现过程原理解析
Aug 11 Python
通过python-pptx模块操作ppt文件的方法
Dec 26 Python
Python实现Kerberos用户的增删改查操作
Dec 14 #Python
python-地图可视化组件folium的操作
Dec 14 #Python
python多线程和多进程关系详解
Dec 14 #Python
Python Pandas list列表数据列拆分成多行的方法实现
Dec 14 #Python
pandas将list数据拆分成行或列的实现
Dec 13 #Python
pandas按照列的值排序(某一列或者多列)
Dec 13 #Python
详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据
Dec 13 #Python
You might like
PHP 输出简单动态WAP页面
2009/06/09 PHP
php shell超强免杀、减少体积工具实现代码
2012/10/16 PHP
php源码分析之DZX1.5加密解密函数authcode用法
2015/06/17 PHP
CentOS下与Apache连接的PHP多版本共存方案实现详解
2015/12/19 PHP
JavaScript中令你抓狂的魔术变量
2006/11/30 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
jQuery获取父元素及父节点的方法小结
2016/04/14 Javascript
js替换字符串中所有指定的字符(实现代码)
2016/08/17 Javascript
jQuery实现的表格前端排序功能示例
2017/09/18 jQuery
微信小程序实现动态设置页面标题的方法【附源码下载】
2017/11/29 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
2019/10/16 Javascript
VUEX 数据持久化,刷新后重新获取的例子
2019/11/12 Javascript
Vue解析带html标签的字符串为dom的实例
2019/11/13 Javascript
Object.keys() 和 Object.getOwnPropertyNames() 的区别详解
2020/05/21 Javascript
Element Rate 评分的使用方法
2020/07/27 Javascript
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
2020/12/01 Vue.js
[02:32]“虐狗”镜头慎点 2016国际邀请赛中国区预选赛现场玩家采访
2016/06/28 DOTA
[38:54]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第一场 11.28
2020/12/01 DOTA
python使用rabbitmq实现网络爬虫示例
2014/02/20 Python
Python的高级Git库 Gittle
2014/09/22 Python
Python实现批量转换文件编码的方法
2015/07/28 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
2018/04/10 Python
对python中的控制条件、循环和跳出详解
2019/06/24 Python
PyQT5 QTableView显示绑定数据的实例详解
2019/06/25 Python
Django 开发环境与生产环境的区分详解
2019/07/26 Python
Python使用字典实现的简单记事本功能示例
2019/08/15 Python
python opencv调用笔记本摄像头
2019/08/28 Python
修改 CentOS 6.x 上默认Python的方法
2019/09/06 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
Python中pyecharts安装及安装失败的解决方法
2020/02/18 Python
美国优质宠物用品购买网站:Muttropolis
2020/02/17 全球购物
法学专业毕业生自荐信范文
2013/12/18 职场文书
医院检讨书范文
2014/02/01 职场文书
《独坐敬亭山》教学反思
2014/04/08 职场文书
婚纱店策划方案
2014/05/22 职场文书
2014年组织委员工作总结
2014/12/01 职场文书