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 相关文章推荐
一个基于flask的web应用诞生 flask和mysql相连(4)
Apr 11 Python
人生苦短我用python python如何快速入门?
Mar 12 Python
Python实现的根据IP地址计算子网掩码位数功能示例
May 23 Python
详解Numpy中的广播原则/机制
Sep 20 Python
使用python PIL库实现简单验证码的去噪方法步骤
May 10 Python
python按修改时间顺序排列文件的实例代码
Jul 25 Python
利用python实现周期财务统计可视化
Aug 25 Python
pandas 对group进行聚合的例子
Dec 27 Python
python3 使用traceback定位异常实例
Mar 09 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
Mar 12 Python
Python turtle库的画笔控制说明
Jun 28 Python
Python pandas求方差和标准差的方法实例
Aug 04 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 获取完整url地址
2008/12/20 PHP
php 字符转义 注意事项
2009/05/27 PHP
认识并使用PHP超级全局变量
2010/01/26 PHP
基于jQuery的简单的列表导航菜单
2011/03/02 Javascript
面向对象的Javascript之一(初识Javascript)
2012/01/20 Javascript
用Javascript实现Windows任务管理器的代码
2012/03/27 Javascript
浅析Js(Jquery)中,字符串与JSON格式互相转换的示例(直接运行实例)
2013/07/09 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
js 获取元素下面所有li的两种方法
2014/04/14 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/09/26 Javascript
JS基于Mootools实现的个性菜单效果代码
2015/10/21 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
bootstrap基础知识学习笔记
2016/11/02 Javascript
Angular的模块化(代码分享)
2016/12/26 Javascript
jQuery remove()过滤被删除的元素(推荐)
2017/07/18 jQuery
解决vue项目axios每次请求session不一致的问题
2020/10/24 Javascript
如何封装Vue Element的table表格组件
2021/02/06 Vue.js
JavaScript 判断浏览器是否是IE
2021/02/19 Javascript
Python的Flask框架中web表单的教程
2015/04/20 Python
python类中super()和__init__()的区别
2016/10/18 Python
Python构建网页爬虫原理分析
2017/12/19 Python
详解tensorflow载入数据的三种方式
2018/04/24 Python
Python数据类型之列表和元组的方法实例详解
2019/07/08 Python
Python及Pycharm安装方法图文教程
2019/08/05 Python
浅析Python语言自带的数据结构有哪些
2019/08/27 Python
Python 异常处理Ⅳ过程图解
2019/10/18 Python
python调用Matplotlib绘制分布点图
2019/10/18 Python
浅谈Python类中的self到底是干啥的
2019/11/11 Python
python多进程并发demo实例解析
2019/12/13 Python
Pytorch 中retain_graph的用法详解
2020/01/07 Python
浅谈Python xlwings 读取Excel文件的正确姿势
2021/02/26 Python
新西兰优惠网站:Treat Me
2019/07/04 全球购物
态度决定一切演讲稿
2014/05/20 职场文书
党建工作汇报材料
2014/12/24 职场文书
超强台风观后感
2015/06/09 职场文书
《假如》教学反思
2016/02/17 职场文书