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查找指定具有相同内容文件的方法
Jun 28 Python
Python实现字典依据value排序
Feb 24 Python
Python常见工厂函数用法示例
Mar 21 Python
python3+PyQt5自定义视图详解
Apr 24 Python
详解opencv Python特征检测及K-最近邻匹配
Jan 21 Python
python实现感知机线性分类模型示例代码
Jun 02 Python
python安装virtualenv虚拟环境步骤图文详解
Sep 18 Python
利用Python小工具实现3秒钟将视频转换为音频
Oct 29 Python
pyenv虚拟环境管理python多版本和软件库的方法
Dec 26 Python
python如何通过pyqt5实现进度条
Jan 20 Python
什么是python的函数体
Jun 19 Python
关于Python中*args和**kwargs的深入理解
Aug 07 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下载文件名中的中文乱码问题解决方法
2015/03/05 PHP
tp5框架内使用tp3.2分页的方法分析
2019/05/05 PHP
js控制框架刷新
2008/08/01 Javascript
DB.ASP 用Javascript写ASP很灵活很好用很easy
2011/07/31 Javascript
关于ExtJS4.1:快捷键支持的问题
2013/04/24 Javascript
js中把JSON字符串转换成JSON对象最好的方法
2014/03/21 Javascript
node.js+express制作网页计算器
2016/01/17 Javascript
JS中如何实现Laravel的route函数详解
2017/02/12 Javascript
jQuery实现用户输入自动完成功能
2017/02/13 Javascript
js简易版购物车功能
2017/06/17 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
angularjs结合html5实现拖拽功能
2018/06/25 Javascript
vue 解决data中定义图片相对路径页面不显示的问题
2020/08/13 Javascript
js实现可爱的气泡特效
2020/09/05 Javascript
Python批量按比例缩小图片脚本分享
2015/05/21 Python
一些常用的Python爬虫技巧汇总
2016/09/28 Python
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
Python实现的朴素贝叶斯分类器示例
2018/01/06 Python
python多维数组切片方法
2018/04/13 Python
python中的二维列表实例详解
2018/06/19 Python
python实现彩票系统
2020/06/28 Python
python用opencv批量截取图像指定区域的方法
2019/01/24 Python
Python 把序列转换为元组的函数tuple方法
2019/06/27 Python
Python新建项目自动添加介绍和utf-8编码的方法
2020/12/26 Python
在Java开发中如何选择使用哪种集合类
2016/08/09 面试题
学前班教师的自我鉴定
2013/12/05 职场文书
楼面经理岗位职责范本
2014/02/18 职场文书
公司联欢晚会主持词
2014/03/22 职场文书
公司捐款倡议书
2014/05/14 职场文书
农民工预备党员思想汇报
2014/09/14 职场文书
2014年卫生保健工作总结
2014/12/08 职场文书
银行求职自荐信范文
2015/03/04 职场文书
门卫管理制度范本
2015/08/05 职场文书
导游词幽默开场白
2019/06/26 职场文书
详解Oracle块修改跟踪功能
2021/11/07 Oracle
postgresql之greenplum字符串去重拼接方式
2023/05/08 PostgreSQL