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线程的两种编程方式
Apr 14 Python
Python中使用ElementTree解析XML示例
Jun 02 Python
python 显示数组全部元素的方法
Apr 19 Python
Flask框架URL管理操作示例【基于@app.route】
Jul 23 Python
Python中创建二维数组
Oct 17 Python
Pyqt5如何让QMessageBox按钮显示中文示例代码
Apr 11 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
Feb 17 Python
Python装饰器的应用场景代码总结
Apr 10 Python
python用分数表示矩阵的方法实例
Jan 11 Python
python利用xpath爬取网上数据并存储到django模型中
Feb 26 Python
Python+uiautomator2实现自动刷抖音视频功能
Apr 29 Python
详解Python自动化之文件自动化处理
Jun 21 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利用header函数实现文件下载时直接提示保存
2009/11/12 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
Laravel实现ApiToken认证请求
2019/10/14 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
2019/10/15 PHP
统计出现最多的字符次数的js代码
2010/12/03 Javascript
使用documentElement正确取得当前可见区域的大小
2014/07/25 Javascript
extjs 分页使用jsp传递数据示例
2014/07/29 Javascript
javascript中sort()的用法实例分析
2015/01/30 Javascript
JavaScript返回网页中锚点数目的方法
2015/04/03 Javascript
javascript转换静态图片,增加粒子动画效果
2015/05/28 Javascript
JavaScript中toString()方法的使用详解
2015/06/05 Javascript
JS实现从顶部下拉显示的带动画QQ客服特效代码
2015/10/24 Javascript
JQuery 获取Dom元素的实例讲解
2017/07/08 jQuery
Node.js如何实现注册邮箱激活功能 (常见)
2017/07/23 Javascript
简述Angular 5 快速入门
2017/11/04 Javascript
微信小程序 textarea 层级过高问题简单解决方案
2019/10/14 Javascript
微信公众号H5之微信分享常见错误和问题(小结)
2019/11/14 Javascript
原生JS运动实现轮播图
2021/01/02 Javascript
Python实现将Excel转换为json的方法示例
2017/08/05 Python
浅谈Python中的zip()与*zip()函数详解
2018/02/24 Python
python实现浪漫的烟花秀
2019/01/30 Python
python3.6根据m3u8下载mp4视频
2019/06/17 Python
html5 http的轮询和Websocket原理
2018/10/19 HTML / CSS
伯克斯奥特莱斯:Burkes Outlet
2019/03/30 全球购物
Pop In A Box英国:Funko POP搪胶公仔
2019/05/27 全球购物
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
教师求职推荐信范文
2013/11/20 职场文书
入股协议书范本
2014/11/01 职场文书
作文评语集锦
2014/12/25 职场文书
部队个人年终总结
2015/03/02 职场文书
在职证明范本
2015/06/15 职场文书
大学生暑期社会实践的个人总结!
2019/07/17 职场文书
浅谈Redis存储数据类型及存取值方法
2021/05/08 Redis
Python入门之使用pandas分析excel数据
2021/05/12 Python
VUE之图片Base64编码使用ElementUI组件上传
2022/04/09 Vue.js
微前端qiankun改造日渐庞大的项目教程
2022/06/21 Javascript