Python 找出英文單詞列表(list)中最長(zhǎng)單詞鏈
本文主要介紹Python中單詞字符串的列表(list),找出列表中所有單詞中前一個(gè)單詞首字母和后一個(gè)單詞尾字母相同,組成最長(zhǎng)的單詞鏈方法代碼,并且每個(gè)單詞不能多次使用。
例如:
words = ['giraffe', 'elephant', 'ant', 'tiger', 'racoon', 'cat', 'hedgehog', 'mouse']
最長(zhǎng)的單詞鏈列表:
['hedgehog', 'giraffe', 'elephant', 'tiger', 'racoon']
1、用遞歸方法查找
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)
輸出結(jié)果:
['hedgehog', 'giraffe', 'elephant', 'tiger', 'racoon']
2、使用networkx查找
import networkx as nx
import matplotlib.pyplot as plt
words = ['giraffe', 'elephant', 'ant', 'tiger', 'racoon', 'cat',
'hedgehog', 'mouse']
G = nx.DiGraph()
G.add_nodes_from(words)
for word1 in words:
for word2 in words:
if word1 != word2 and word1[-1] == word2[0]:
G.add_edge(word1, word2)
nx.draw_networkx(G)
plt.show()
print(nx.algorithms.dag.dag_longest_path(G))
到此這篇關(guān)于Python 找出英文單詞列表(list)中最長(zhǎng)單詞鏈的文章就介紹到這了,更多相關(guān)Python 列表最長(zhǎng)單詞鏈內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 解決python列表list中的截取問(wèn)題
- Python3 列表list合并的4種方法
- python中列表(list)和元組(tuple)的深入講解
- Python列表排序 list.sort方法和內(nèi)置函數(shù)sorted用法
- Python 列表(List)的底層實(shí)現(xiàn)原理分析
- Python Pandas list列表數(shù)據(jù)列拆分成多行的方法實(shí)現(xiàn)
- 深入了解python列表(LIST)
- python 解決mysql where in 對(duì)列表(list,,array)問(wèn)題
- Python將二維列表list的數(shù)據(jù)輸出(TXT,Excel)
- python的列表List求均值和中位數(shù)實(shí)例
- Python3列表List入門(mén)知識(shí)附實(shí)例
- Python列表list操作相關(guān)知識(shí)小結(jié)
- 基于python的列表list和集合set操作
- Python List列表對(duì)象內(nèi)置方法實(shí)例詳解
- Python列表list常用內(nèi)建函數(shù)實(shí)例小結(jié)
- 詳細(xì)整理python 字符串(str)與列表(list)以及數(shù)組(array)之間的轉(zhuǎn)換方法
- python創(chuàng)建與遍歷List二維列表的方法
- Python源碼解析之List
相關(guān)文章
Python協(xié)程的四種實(shí)現(xiàn)方式總結(jié)
今天繼續(xù)給大家介紹Python關(guān)知識(shí),本文主要內(nèi)容是Python協(xié)程的四種實(shí)現(xiàn)方式。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-01-01
pandas round方法保留兩位小數(shù)的設(shè)置實(shí)現(xiàn)
本文主要介紹了pandas round方法保留兩位小數(shù)的設(shè)置實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
解決python存數(shù)據(jù)庫(kù)速度太慢的問(wèn)題
這篇文章主要介紹了解決python存數(shù)據(jù)庫(kù)速度太慢的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04
Tensorflow自定義模型與訓(xùn)練超詳細(xì)講解
TensorFlow是基于數(shù)據(jù)流編程的符號(hào)數(shù)學(xué)系統(tǒng),廣泛用于機(jī)器學(xué)習(xí)算法的編程實(shí)現(xiàn),前身是谷歌的神經(jīng)網(wǎng)絡(luò)算法庫(kù)DistBelief,Tensorflow擁有多層級(jí)結(jié)構(gòu),可部署于各類(lèi)服務(wù)器、PC終端和網(wǎng)頁(yè)并支持GPU和TPU高性能數(shù)值計(jì)算,被廣泛應(yīng)用于谷歌內(nèi)部的產(chǎn)品開(kāi)發(fā)和各領(lǐng)域的科學(xué)研究2022-11-11
PyTorch 中的傅里葉卷積實(shí)現(xiàn)示例
這篇文章主要介紹了PyTorch 中的傅里葉卷積實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12

