首页 > 解决方案 > 从python中的单词列表中查找最长的常用单词序列

问题描述

我搜索了很多解决方案,我确实发现了类似的问题。此答案返回可能不属于输入列表中所有字符串的最长字符序列。此答案返回必须属于输入列表中所有字符串的最长公共单词序列。

我正在寻找上述解决方案的组合。也就是说,我想要最长的常见单词序列,它可能不会出现在输入列表的所有单词/短语中。

以下是一些预期的示例:

['exterior lighting', 'interior lighting']-->'lighting'

['ambient lighting', 'ambient light']-->'ambient'

['led turn signal lamp', 'turn signal lamp', 'signal and ambient lamp', 'turn signal light']-->'turn signal lamp'

['ambient lighting', 'infrared light']-->''

谢谢

标签: pythonlongest-substring

解决方案


此代码还将按列表中最常见的单词对您想要的列表进行排序。它将计算列表中每个单词的数量,然后将仅出现一次的单词剪切并对其进行排序。

lst=['led turn signal lamp', 'turn signal lamp', 'signal and ambient lamp', 'turn signal light'] 
d = {}
d_words={}
for i in lst:
    for j in i.split():
      if j in d:
          d[j] = d[j]+1
      else:
          d[j]= 1
for k,v in d.items():
    if v!=1:
        d_words[k] = v
sorted_words = sorted(d_words,key= d_words.get,reverse = True)
print(sorted_words)

推荐阅读