我搜索了很多解决方案,确实发现了类似的问题。这个答案 https://stackoverflow.com/questions/21930757/longest-repeated-substring返回可能不属于输入列表中所有字符串的最长字符序列。这个答案 https://stackoverflow.com/questions/47099802/longest-common-sequence-of-words-from-more-than-two-strings返回必须属于输入列表中所有字符串的最长公共单词序列。
我正在寻找一个上述解决方案的组合。也就是说,我想要最长的常见单词序列,这些单词可能不会出现在输入列表的所有单词/短语中。
以下是一些预期的示例:
['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']
--> ''
谢谢
此代码还将按列表中最常见的单词对所需列表进行排序。
它会计算列表中每个单词的数量,然后删除只出现一次的单词并对其进行排序。
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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)