Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)

 更新时间:2020年12月14日 09:52:23   作者:levi  
这篇文章主要介绍了Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母),列表中每个元素相当于一个单词,要实现列表中前一个单词末字母是下一个单词的首字母,并且这个链是最长的。感兴趣的可以了解一下

使用递归实现

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中的类属性与实例属性的区别和用法

    在Python中,类属性和实例属性是面向对象编程的核心概念之一,它们允许存储和管理对象的数据,并影响对象的行为,本篇文章中,会学习到类属性和实例属性的概念、区别以及如何在Python中使用它们,同时提供大量的示例代码来更好地理解它们的作用和用法,需要的朋友可以参考下
    2023-11-11
  • python算法练习之抓交通肇事犯

    python算法练习之抓交通肇事犯

    这篇文章主要该大家分享python算法抓交通肇事犯得练习,文章主要通过描述抓交通肇事犯得问题然后确定程序框架将结果运算出来,下面来看详细内容吧,需要的朋友可以参考一下哟
    2021-10-10
  • Python爬虫设置代理IP(图文)

    Python爬虫设置代理IP(图文)

    在本篇内容里小编给大家分享了关于Python爬虫设置代理IP的相关知识点和步骤,需要的朋友们参考下。
    2018-12-12
  • python第三方库pygame的使用详解

    python第三方库pygame的使用详解

    这篇文章主要介绍了python第三方库pygame的使用,pygame一般用来做游戏,在这需要注意在使用pygame提供的功能之前,需要调用init方法,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • 对python3 Serial 串口助手的接收读取数据方法详解

    对python3 Serial 串口助手的接收读取数据方法详解

    今天小编就为大家分享一篇对python3 Serial 串口助手的接收读取数据方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python创建exe运行器和截图工具的示例详解

    Python创建exe运行器和截图工具的示例详解

    本文我们将探讨如何使用Python和wxPython创建一个强大而实用的桌面应用程序,可以遍历指定文件夹中的所有EXE文件,感兴趣的小伙伴可以了解一下
    2024-10-10
  • python+selenium实现163邮箱自动登陆的方法

    python+selenium实现163邮箱自动登陆的方法

    本篇文章主要介绍了python+selenium实现163邮箱自动登陆的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • python模块之time模块(实例讲解)

    python模块之time模块(实例讲解)

    下面小编就为大家带来一篇python模块之time模块(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 用python制作游戏外挂

    用python制作游戏外挂

    玩过电脑游戏的同学对于外挂肯定不陌生,但是你在用外挂的时候有没有想过如何做一个外挂呢?那我们就来看一下如何用python来制作一个外挂
    2018-01-01
  • 对Python3 解析html的几种操作方式小结

    对Python3 解析html的几种操作方式小结

    今天小编就为大家分享一篇对Python3 解析html的几种操作方式小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02

最新评论