筛选列表并按相关项排序

2024-03-29 07:46:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串列表:

my_list = ['Paul', 'Robinson', 'Hismith', 'Smith']

我需要对其进行筛选并按相关性排序:

^{pr2}$

我的列表很小,如果我能使用尽可能少的逻辑/库就好了。在

你会怎么做?在

谢谢!在


Tags: 字符串列表排序my逻辑listsmithpaul
2条回答

尝试如下操作(您可能需要调整cutoff=选项):

import difflib

my_list = ['Paul', 'Robinson', 'Hismith', 'Smith']
print difflib.get_close_matches('Paul', my_list)
# ['Paul']
print difflib.get_close_matches('Smith', my_list)
# ['Hismith', 'Smith']

很难说,什么是“相关性”。在我的回答中,我只接受被搜索的word在元素内,并按其长度对结果进行排序(很有可能100%的匹配首先出现):

def filter_list(li, word):
    return sorted((elem for elem in li if word.lower() in elem.lower()), key=len)

相关问题 更多 >