Допустим, я строил рудиментарную поисковую систему. У меня есть список строк в качестве результатов поиска, и я хочу заказать список результатов поиска с наилучшими совпадающими результатами в верхней части.Как отсортировать список строк по наилучшему совпадению (коэффициент диффузии)
Мой текущий код выглядит следующим образом (именованных параметров в качестве примеров)
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
, но как бы я это сделал?
Помимо: использование изменяемых аргументов в качестве значений по умолчанию является [плохая привычка] (http://stackoverflow.com/questions/1132941/least-astonishment-in-python- параметр-mutable-default-argument), поэтому, вероятно, это хорошая идея, чтобы избежать этого, даже здесь, где это не имеет большого значения. – DSM
Просто используя это в качестве примера. Я бы не сделал этого в производственном коде :) – ron975