首页 > 解决方案 > 为什么添加'sort(key = len,reverse = True))'到列表将函数的输出从列表更改为无

问题描述

当我运行这个:

def get_substring(str_name,k):
    str_list = []
    for i in reversed(range(len(str_name)+1)):
        for index,x in enumerate(str_name):
            str_list.append(str_name[index:index+i])

    filtered_list = list(filter(None,str_list))
    return filtered_list    

输出是:

['abcba', 'bcba', 'cba', 'ba', 'a', 'abcb', 'bcba', 'cba', 'ba', 'a', 'abc', 'bcb', 'cba', 'ba', 'a', 'ab', 'bc', 'cb', 'ba', 'a', 'a', 'b', 'c', 'b', 'a']

我想返回一个排序列表,所以列表首先返回最长的字符串,但是当我运行这个时:

def get_substring(str_name,k):
    str_list = []
    for i in reversed(range(len(str_name)+1)):
        for index,x in enumerate(str_name):
            str_list.append(str_name[index:index+i])

    filtered_list = list(filter(None,str_list)).sort(key=len,reverse=True)
    return filtered_list    


print(get_substring('abcba', 2)) #.sort(key=len,reverse=True))

输出只是“无”。

为什么是这样?我不能对函数中的列表进行排序吗?

标签: python

解决方案


推荐阅读