Python 排序最長英文單詞鏈(列表中前一個(gè)單詞末字母是下一個(gè)單詞的首字母)
使用遞歸實(shí)現(xiàn)
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']
工作原理類似于廣度優(yōu)先搜索,因?yàn)橹灰?dāng)前值之前沒有被調(diào)用,get_results函數(shù)就會繼續(xù)遍歷整個(gè)列表。函數(shù)已經(jīng)查找過的值被添加到_seen列表中,最終停止遞歸調(diào)用流。這個(gè)解決方案也會忽略重復(fù)的結(jié)果,
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']
到此這篇關(guān)于Python 排序最長英文單詞鏈(列表中前一個(gè)單詞末字母是下一個(gè)單詞的首字母)的文章就介紹到這了,更多相關(guān)Python 排序最長英文單詞鏈內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中的類屬性與實(shí)例屬性的區(qū)別和用法
在Python中,類屬性和實(shí)例屬性是面向?qū)ο缶幊痰暮诵母拍钪?它們允許存儲和管理對象的數(shù)據(jù),并影響對象的行為,本篇文章中,會學(xué)習(xí)到類屬性和實(shí)例屬性的概念、區(qū)別以及如何在Python中使用它們,同時(shí)提供大量的示例代碼來更好地理解它們的作用和用法,需要的朋友可以參考下2023-11-11對python3 Serial 串口助手的接收讀取數(shù)據(jù)方法詳解
今天小編就為大家分享一篇對python3 Serial 串口助手的接收讀取數(shù)據(jù)方法詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06Python創(chuàng)建exe運(yùn)行器和截圖工具的示例詳解
本文我們將探討如何使用Python和wxPython創(chuàng)建一個(gè)強(qiáng)大而實(shí)用的桌面應(yīng)用程序,可以遍歷指定文件夾中的所有EXE文件,感興趣的小伙伴可以了解一下2024-10-10python+selenium實(shí)現(xiàn)163郵箱自動登陸的方法
本篇文章主要介紹了python+selenium實(shí)現(xiàn)163郵箱自動登陸的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12