gpt4 book ai didi

python - 如何按最佳匹配(difflib 比率)对字符串列表进行排序

转载 作者:太空宇宙 更新时间:2023-11-03 12:28:20 28 4
gpt4 key购买 nike

假设我正在构建一个基本的搜索引擎。我有一个字符串列表作为搜索结果,我想对搜索结果列表进行排序,最匹配的结果排在最前面。

我当前的代码如下所示(以命名参数为例)

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()

之后我不知道如何处理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']

此外,如果您想要相反的顺序:

>>> sorted(a, key=lambda x: difflib.SequenceMatcher(None, x, b).ratio(), reverse=True)
['spam', 'spammy', 'eggs', 'eggy']

关于python - 如何按最佳匹配(difflib 比率)对字符串列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17903706/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com