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中的包和模块实例
Nov 22 Python
python中管道用法入门实例
Jun 04 Python
简单谈谈python中的Queue与多进程
Aug 25 Python
浅谈django model的get和filter方法的区别(必看篇)
May 23 Python
Python使用base64模块进行二进制数据编码详解
Jan 11 Python
pyinstaller参数介绍以及总结详解
Jul 12 Python
开启Django博客的RSS功能的实现方法
Feb 17 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
Feb 27 Python
python中sys模块是做什么用的
Aug 16 Python
五分钟带你搞懂python 迭代器与生成器
Aug 30 Python
Python利用folium实现地图可视化
May 23 Python
python之PySide2安装使用及QT Designer UI设计案例教程
Jul 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速度全攻略
2006/10/09 PHP
不要轻信 PHP_SELF的安全问题
2009/09/05 PHP
mysql下创建字段并设置主键的php代码
2010/05/16 PHP
浅析HTTP消息头网页缓存控制以及header常用指令介绍
2013/06/28 PHP
smarty简单分页的实现方法
2014/10/27 PHP
PHP生成随机数的方法实例分析
2015/01/22 PHP
php 数组随机取值的简单实例
2016/05/23 PHP
php+jQuery+Ajax简单实现页面异步刷新
2016/08/08 PHP
thinkPHP自动验证机制详解
2016/12/05 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(下:动画篇)
2010/03/24 Javascript
JavaScript中常见陷阱小结
2010/04/27 Javascript
javascript基础之查找元素的详细介绍(访问节点)
2013/07/05 Javascript
jquery教程限制文本框只能输入数字和小数点示例分享
2014/01/13 Javascript
JQuery与JS里submit()的区别示例介绍
2014/02/17 Javascript
初始Nodejs
2014/11/08 NodeJs
浅谈jquery选择器 :first与:first-child的区别
2016/11/20 Javascript
原生JavaScript实现todolist功能
2018/03/02 Javascript
学习使用ExpressJS 4.0中的新Router的用法
2018/11/06 Javascript
Vue递归实现树形菜单方法实例
2018/11/06 Javascript
JavaScript canvas绘制渐变颜色的矩形
2020/02/18 Javascript
[16:27]DOTA2 HEROS教学视频教你分分钟做大人-艾欧
2014/06/11 DOTA
Python常见排序操作示例【字典、列表、指定元素等】
2018/08/15 Python
Python Django 页面上展示固定的页码数实现代码
2019/08/21 Python
python实现ftp文件传输系统(案例分析)
2020/03/20 Python
python中delattr删除对象方法的代码分析
2020/12/15 Python
LINUX下线程,GDI类的解释
2016/12/14 面试题
某科技软件测试面试题
2013/05/19 面试题
公司周年庆典邀请函
2014/01/12 职场文书
小学母亲节活动方案
2014/03/14 职场文书
经济贸易系毕业生求职信
2014/05/31 职场文书
甲乙双方合作协议书
2014/10/13 职场文书
护理见习报告范文
2014/11/03 职场文书
优秀党员先进事迹材料
2014/12/18 职场文书
胡雪岩故居导游词
2015/02/06 职场文书
只需要100行Python代码就可以实现的贪吃蛇小游戏
2021/05/27 Python