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脚本实现批量网站存活检测遇到问题及解决方法
Oct 11 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
Oct 20 Python
python实现电脑自动关机
Jun 20 Python
python mac下安装虚拟环境的图文教程
Apr 12 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
Apr 25 Python
Python实现二叉搜索树BST的方法示例
Jul 30 Python
基于打开pycharm有带图片md文件卡死问题的解决
Apr 24 Python
python将logging模块封装成单独模块并实现动态切换Level方式
May 12 Python
win10安装python3.6的常见问题
Jul 01 Python
python正则表达式的懒惰匹配和贪婪匹配说明
Jul 13 Python
浅谈Python数学建模之线性规划
Jun 23 Python
浅析Python OpenCV三种滤镜效果
Apr 11 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更新修改excel中的内容实例代码
2014/02/26 PHP
php导出excel格式数据问题
2014/03/11 PHP
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
php根据用户名和手机号查询是否存在手机号码
2017/02/16 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
基于laravel-admin 后台 列表标签背景的使用方法
2019/10/03 PHP
js 数组操作代码集锦
2009/04/28 Javascript
Jquery 插件开发笔记整理
2011/01/17 Javascript
jQuery操作input type=radio的实现代码
2012/06/14 Javascript
js setTimeout 常见问题小结
2013/08/13 Javascript
jquery、js操作checkbox全选反选
2014/03/12 Javascript
Javascript中arguments对象详解
2014/10/22 Javascript
AngularJS中的Directive自定义一个表格
2016/01/25 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
2016/10/25 Javascript
JS遍历对象属性的方法示例
2017/01/10 Javascript
Vue实现点击显示不同图片的效果
2019/08/10 Javascript
js 实现watch监听数据变化的代码
2019/10/13 Javascript
JS实现的雪花飘落特效示例
2019/12/03 Javascript
vue实现图片上传到后台
2020/06/29 Javascript
[51:17]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第二场 10月30日
2020/10/31 DOTA
让python的Cookie.py模块支持冒号做key的方法
2010/12/28 Python
Python多线程编程(五):死锁的形成
2015/04/05 Python
python实现将pvr格式转换成pvr.ccz的方法
2015/04/28 Python
python逆序打印各位数字的方法
2018/06/25 Python
Python批处理更改文件名os.rename的方法
2018/10/26 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
Python是什么 Python的用处
2020/05/26 Python
介绍CSS3使用技巧5个
2009/04/02 HTML / CSS
自我评价的范文
2014/02/02 职场文书
项目建议书格式
2014/03/12 职场文书
教师批评与自我批评总结
2014/10/16 职场文书
医生辞职信范文
2015/03/02 职场文书
小孩不笨观后感
2015/06/03 职场文书
三严三实·严以用权心得体会
2016/01/12 职场文书
话题作文之关于呼唤
2019/11/29 职场文书
CentOS8.4安装Redis6.2.6的详细过程
2021/11/20 Redis