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 相关文章推荐
wxPython事件驱动实例详解
Sep 28 Python
python实现的守护进程(Daemon)用法实例
Jun 02 Python
python利用正则表达式搜索单词示例代码
Sep 24 Python
Python通过命令开启http.server服务器的方法
Nov 04 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
May 07 Python
python实现双色球随机选号
Jan 01 Python
Pytorch中的自动求梯度机制和Variable类实例
Feb 29 Python
python标准库OS模块函数列表与实例全解
Mar 10 Python
django model的update时auto_now不被更新的原因及解决方式
Apr 01 Python
详解pytorch tensor和ndarray转换相关总结
Sep 03 Python
Windows安装Anaconda3的方法及使用过程详解
Jun 11 Python
Django+Celery实现定时任务的示例
Jun 23 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入门学习知识点二 PHP简单的分页过程与原理
2011/07/14 PHP
php另类上传图片的方法(PHP用Socket上传图片)
2013/10/30 PHP
PHP连接sql server 2005环境配置及问题解决
2014/08/08 PHP
php 判断页面或图片是否经过gzip压缩的方法
2017/04/05 PHP
在Laravel中实现使用AJAX动态刷新部分页面
2019/10/15 PHP
鼠标图片振动代码
2006/07/06 Javascript
js去空格技巧分别去字符串前后、左右空格
2013/10/21 Javascript
js 高效去除数组重复元素示例代码
2013/12/19 Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
2016/02/17 Javascript
基于BootstrapValidator的Form表单验证(24)
2016/12/12 Javascript
Bootstrap的基本应用要点浅析
2016/12/19 Javascript
微信小程序 Template详解及简单实例
2017/01/05 Javascript
Javascript中click与blur事件的顺序详析
2017/04/25 Javascript
深入理解Angularjs中$http.post与$.post
2017/05/19 Javascript
移动web开发之touch事件实例详解
2018/01/17 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
2019/04/15 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
Python实现Tab自动补全和历史命令管理的方法
2015/03/12 Python
Python控制多进程与多线程并发数总结
2016/10/26 Python
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
2018/05/24 Python
python实现n个数中选出m个数的方法
2018/11/13 Python
PyQt5 实现给窗口设置背景图片的方法
2019/06/13 Python
Python配置文件处理的方法教程
2019/08/29 Python
python并发爬虫实用工具tomorrow实用解析
2019/09/25 Python
详解Python中的format格式化函数的使用方法
2019/11/20 Python
Python读取分割压缩TXT文本文件实例
2020/02/14 Python
Django使用list对单个或者多个字段求values值实例
2020/03/31 Python
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
2020/08/05 Python
美国著名手表网站:Timepiece
2017/11/15 全球购物
澳大利亚婴儿喂养品牌:Cherub Baby
2018/11/01 全球购物
三好学生事迹材料
2014/12/24 职场文书
升职自我推荐信范文
2015/03/25 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书
创业计划书之牛肉汤快餐店
2019/10/08 职场文书