在字符串列表中找到最佳匹配
Find The Best Match In List of string
我有
target = "dexter.new.blood.S01EP07.somerandomstring.mkv"
我使用 split('.')
设法只得到了名字
成为
target = "dexternewblood"
和
list = ['Dexter - Eighth Season (2013)', 'Dexter - Seventh Season (2012)', 'Dexter - Fourth Season (2009)', 'Dexter - Third Season (2008)', 'Dexter - Sixth Season (2011)', 'Dexter - Fifth Season (2010)', 'Dexter: New Blood - First Season (2021)', 'Dexter - First Season (2006)', 'Dexter - Second Season (2007)']
我做了同样的事情,结果是:
list = ['Dexter ', 'Dexter ', 'Dexter ', 'Dexter ', 'Dexter ', 'Dexter ', 'Dexter: New Blood ', 'Dexter ', 'Dexter ']
我想要最好的比赛是“Dexter:New Blood”
如果你也可以添加获取索引的方法
来自这个similar post you can use SequenceMatcher
from difflib
内置模块:
from difflib import SequenceMatcher
target = "dexternewblood"
lst = ['Dexter ', 'Dexter ', 'Dexter ', 'Dexter ', 'Dexter ', 'Dexter ', 'Dexter: New Blood ', 'Dexter ', 'Dexter ']
a = [SequenceMatcher(None, i, target).ratio() for i in lst]
index = a.index(max(a)) # 6
match = lst[index] # 'Dexter: New Blood '
我有
target = "dexter.new.blood.S01EP07.somerandomstring.mkv"
我使用 split('.')
设法只得到了名字
成为
target = "dexternewblood"
和
list = ['Dexter - Eighth Season (2013)', 'Dexter - Seventh Season (2012)', 'Dexter - Fourth Season (2009)', 'Dexter - Third Season (2008)', 'Dexter - Sixth Season (2011)', 'Dexter - Fifth Season (2010)', 'Dexter: New Blood - First Season (2021)', 'Dexter - First Season (2006)', 'Dexter - Second Season (2007)']
我做了同样的事情,结果是:
list = ['Dexter ', 'Dexter ', 'Dexter ', 'Dexter ', 'Dexter ', 'Dexter ', 'Dexter: New Blood ', 'Dexter ', 'Dexter ']
我想要最好的比赛是“Dexter:New Blood” 如果你也可以添加获取索引的方法
来自这个similar post you can use SequenceMatcher
from difflib
内置模块:
from difflib import SequenceMatcher
target = "dexternewblood"
lst = ['Dexter ', 'Dexter ', 'Dexter ', 'Dexter ', 'Dexter ', 'Dexter ', 'Dexter: New Blood ', 'Dexter ', 'Dexter ']
a = [SequenceMatcher(None, i, target).ratio() for i in lst]
index = a.index(max(a)) # 6
match = lst[index] # 'Dexter: New Blood '