使用函数对列表进行排序以返回新列表

时间:2017-09-29 08:24:26

标签: python

我无法使用内置的sorted()函数排序列表。我完成了我的研究,但似乎无法找到解决方案。

这就是我所拥有的:

def min_len_word(list):
    return min(list, key=len)

我想使用这个函数来返回一个按其元素长度排序的列表,并且这样做我认为我应该使用for或while循环,但我不确定如何在循环中使用函数。

修改

我对缺乏信息表示歉意! 我有两个功能

def min_len_word(list):
return min(list, key=len)

def sorted_list(list):

我希望第二个函数使用第一个函数来获得结果

1 个答案:

答案 0 :(得分:2)

我不确定你真正想做什么,这是一个例子,你如何在python中对dicts列表进行排序:

x = [ 
    {'text':"f", 'len':5},
    {'text':"a", 'len':8},
    {'text':"d", 'len':0},
    {'text':"e", 'len':2},
    {'text':"c", 'len':3},
    {'text':"b", 'len':9}
]

def min_len_word(list):
    return sorted(list, key=lambda k: k['len'])

此函数返回按其len值排序的列表。

listx = [ "x", "aaa","bbb"]
def min_len_word(list):
    return sorted(list, lambda x,y: cmp(len(x), len(y)))

或者可能是那样的? 此函数按字符串长度

对字符串列表进行排序

编辑:

listx = [ "x", "aasdasdadaa","bbxxb","aaa","bbb"]
def min_len_word(list):
    return min(list, key=len)

def sorted_list(list):
    result = []
    while len(list) != 0:
        result.append(min_len_word(list))
        list.remove(min_len_word(list))
    return result

print(sorted_list(listx))

函数不使用sort / sorted:)