首页 > 解决方案 > python排序函数的入口函数

问题描述

我正在尝试制作一个小型终端搜索引擎(python 3.9,VS Code),并将此函数编写为排序的关键函数。不写list参数的list.index时候是没有意义的,写的时候报错,能查一下吗?

def soort(self, keyword):
    return self.index(keyword)
list_high = []
listname = ['breaking bad', 'dark', 'stranger things',
             'vikings', 'game of thrones', 'prison break',
             'sherlock', 'silicon valley', 'lost', 'friends']
search = 'br'
for name in listname:
    if search in name:
        list_high.append(name)
list_high.sort(key=soort(list_high, search))
print(list_high)

标签: pythonpython-3.xsortingsearch

解决方案


list_high.sort(key=soort(list_high, search))

此调用soort(list_high, search)一次然后将其返回值(整数)作为 的key参数传递sort,这没有任何意义(整数不可调用)。

您需要确保传入一个可调用对象。

您还应该考虑使用.find而不是.index,因为如果找不到搜索的字符串,.index则会引发 a 。将返回。ValueError.find-1

list_high.sort(key=lambda word: word.find('br'))

推荐阅读