我无法使用内置的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):
我希望第二个函数使用第一个函数来获得结果
答案 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:)