ron*_*975 3 python sorting list difflib
让我们说我正在建立各种各样的基本搜索引擎.我有一个字符串列表作为搜索结果,我想在顶部订购具有最佳匹配结果的搜索结果列表.
我当前的代码看起来像这样(命名参数作为示例)
import difflib
def order_by_best_match(search_results=["spam", "eggs", "spammy", "eggy"], search_query="spam"):
for result in search_results:
ratio = difflib.SequenceMatcher(None, result, search_query).ratio()
Run Code Online (Sandbox Code Playgroud)
之后我不知道该怎么办ratio.我知道我必须对列表进行排序ratio,但我该怎么做呢?
>>> import difflib
>>> a = ["spam", "eggs", "spammy", "eggy"]
>>> b = 'spam'
>>> sorted(a, key=lambda x: difflib.SequenceMatcher(None, x, b).ratio())
['eggy', 'eggs', 'spammy', 'spam']
Run Code Online (Sandbox Code Playgroud)
另外,如果您想要相反的顺序:
>>> sorted(a, key=lambda x: difflib.SequenceMatcher(None, x, b).ratio(), reverse=True)
['spam', 'spammy', 'eggs', 'eggy']
Run Code Online (Sandbox Code Playgroud)