Python 영어 단어 목록 찾기(list)

본고는 주로Python의 단어 문자열 목록(list)을 소개하고 목록에 있는 모든 단어 중 앞의 단어 알파벳과 뒤의 단어 꼬리 알파벳이 같고 가장 긴 단어 체인 방법 코드를 구성하며 각 단어는 여러 번 사용할 수 없습니다.
예:

words = ['giraffe', 'elephant', 'ant', 'tiger', 'racoon', 'cat', 'hedgehog', 'mouse']
가장 긴 단어 체인 목록:

['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)

출력 결과:
['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))

파이썬이 영어 단어 목록(list)에서 가장 긴 단어 사슬을 찾아내는 것에 관한 이 글을 소개합니다. 파이썬 목록의 가장 긴 단어 사슬에 대한 더 많은 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기