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 相关文章推荐
Java中重定向输出流实现用文件记录程序日志
Jun 12 Python
Python 列表(List) 的三种遍历方法实例 详解
Apr 15 Python
浅谈配置OpenCV3 + Python3的简易方法(macOS)
Apr 02 Python
python 统计列表中不同元素的数量方法
Jun 29 Python
python交换两个变量的值方法
Jan 12 Python
Opencv-Python图像透视变换cv2.warpPerspective的示例
Apr 11 Python
Python中的 is 和 == 以及字符串驻留机制详解
Jun 28 Python
pandas读取CSV文件时查看修改各列的数据类型格式
Jul 07 Python
Django实现基于类的分页功能
Oct 31 Python
Mysql数据库反向生成Django里面的models指令方式
May 18 Python
Python+Opencv身份证号码区域提取及识别实现
Aug 25 Python
python爬虫请求库httpx和parsel解析库的使用测评
May 10 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
极典R601SW收音机
2021/03/02 无线电
快速配置PHPMyAdmin方法
2008/06/05 PHP
php number_format() 函数通过千位分组来格式化数字的实现代码
2013/08/06 PHP
php实现singleton()单例模式实例
2014/11/06 PHP
PHP自动载入类文件函数__autoload的使用方法
2019/03/25 PHP
HTA版JSMin(省略修饰语若干)基于javascript语言编写
2009/12/24 Javascript
Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
2010/03/16 Javascript
js中将HTMLCollection/NodeList/伪数组转换成数组的代码
2011/07/31 Javascript
JQuery中$.ajax()方法参数详解及应用
2013/12/12 Javascript
AngularJS学习笔记之TodoMVC的分析
2015/02/22 Javascript
BootStrap轻松实现微信页面开发代码分享
2016/10/21 Javascript
ionic中列表项增加和删除的实现方法
2017/01/22 Javascript
Bootstrap table简单使用总结
2017/02/15 Javascript
vue-cli webpack模板项目搭建及打包时路径问题的解决方法
2018/02/26 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
js canvas实现橡皮擦效果
2018/12/20 Javascript
微信小程序实现点击图片放大预览
2019/10/21 Javascript
[01:51]2014DOTA2国际邀请赛 这个赛场没有失败者VGTi5再见
2014/07/23 DOTA
[01:04]DOTA2:伟大的Roshan雕塑震撼来临
2015/01/30 DOTA
[00:44]TI7不朽珍藏III——军团指挥官不朽展示
2017/07/15 DOTA
[28:07]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第二场 12.13
2020/12/17 DOTA
python去掉字符串中重复字符的方法
2014/02/27 Python
Python机器学习之决策树算法实例详解
2017/12/06 Python
python绘制圆柱体的方法
2018/07/02 Python
Python中常用的内置方法
2019/01/28 Python
关于多元线性回归分析——Python&SPSS
2020/02/24 Python
一款恶搞头像特效的制作过程 利用css3和jquery
2014/11/21 HTML / CSS
C#中类(class)与结构(struct)的异同
2013/11/03 面试题
前台领班岗位职责
2013/12/04 职场文书
《鸟的天堂》教学反思
2014/02/27 职场文书
网络管理员岗位职责
2014/03/17 职场文书
房产分割协议书范文
2014/11/21 职场文书
员工试用期转正自我评价
2015/03/10 职场文书
2015年事业单位工作总结
2015/04/27 职场文书
2015年农村党员公开承诺事项
2015/04/28 职场文书
P站美图推荐——变身女主角特辑
2022/03/20 日漫