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函数嵌套实例
Sep 23 Python
对于Python中线程问题的简单讲解
Apr 03 Python
Python Queue模块详细介绍及实例
Dec 27 Python
Python简单读取json文件功能示例
Nov 30 Python
python实现闹钟定时播放音乐功能
Jan 25 Python
Python实现的求解最大公约数算法示例
May 03 Python
对Python 数组的切片操作详解
Jul 02 Python
pytorch中的上采样以及各种反操作,求逆操作详解
Jan 03 Python
python numpy生成等差数列、等比数列的实例
Feb 25 Python
python中def是做什么的
Jun 10 Python
Python-openpyxl表格读取写入的案例详解
Nov 02 Python
python turtle绘图
May 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
YB217、YB235、YB400浅听
2021/03/02 无线电
一道求$b相对于$a的相对路径的php代码
2010/08/08 PHP
php+mysqli实现批量执行插入、更新及删除数据的方法
2015/01/29 PHP
Yii rules常用规则示例
2016/03/15 PHP
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
JS 图片缩放效果代码
2010/06/09 Javascript
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
2011/05/07 Javascript
js常用代码段整理
2011/11/30 Javascript
用javascript删除当前行,添加行(示例代码)
2013/11/25 Javascript
jQuery插件MixItUp实现动画过滤和排序
2015/04/12 Javascript
JavaScript中的bold()方法使用详解
2015/06/08 Javascript
Backbone.js的Hello World程序实例
2015/06/19 Javascript
jQuery Easyui datagrid行内实现【添加】、【编辑】、【上移】、【下移】
2016/12/19 Javascript
详解vue中引入stylus及报错解决方法
2017/09/22 Javascript
Vue.js中的computed工作原理
2018/03/22 Javascript
详解基于Koa2开发微信二维码扫码支付相关流程
2018/05/16 Javascript
简化版的vue-router实现思路详解
2018/10/19 Javascript
详解Vue源码之数据的代理访问
2018/12/11 Javascript
vue实现日历备忘录功能
2020/09/24 Javascript
Javascript表单序列化原理及实现代码详解
2020/10/30 Javascript
下载安装setuptool和pip linux安装pip    
2014/01/24 Python
python数据类型判断type与isinstance的区别实例解析
2017/10/31 Python
Python实现PS滤镜中马赛克效果示例
2018/01/20 Python
20个常用Python运维库和模块
2018/02/12 Python
Python基于socket模块实现UDP通信功能示例
2018/04/10 Python
Python实现的读写json文件功能示例
2018/06/05 Python
python使用pandas处理excel文件转为csv文件的方法示例
2019/07/18 Python
Django实现发送邮件找回密码功能
2019/08/12 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
2019/10/24 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
2020/02/15 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
2020/03/09 Python
2014国庆65周年领导讲话稿(3篇)
2014/09/21 职场文书
领导干部四风问题自我剖析材料
2014/09/25 职场文书
2016年五一劳动节专题校园广播稿
2015/12/17 职场文书
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
2021/06/30 SQL Server
一次SQL查询优化原理分析(900W+数据从17s到300ms)
2022/06/10 SQL Server