我正在做我的小作业。我想用我定义的函数对列表进行排序。
for exp。
list = [[1], [1,2,3,4,5,6,7], [1,2,3], [1,2], [1,2,3,4], [1,2,3,4,5,6,7,8]]
function1: (the length of every small list) / 10
function2: (the length of every small list) / 12
and the first 3 lists judged by function1, and the other by function2
我想要的结果:
list = [[1],[1,2],[1,2,3],[1,2,3,4],[1,2,3,4,5,6,7,8],[1,2,3,4,5,6,7]]
我已经可以按照它的长度对列表进行排序而没有该功能,所以如果您有任何想法,请告诉我。 谢谢!
答案 0 :(得分:5)
您可以使用内置sorted()
功能实现它。您可以通过提供key
附加功能来指定您希望如何对可迭代元素进行排序。在这里,您希望按元素的长度(即内部列表的长度)进行排序,因此您可以使用内置的len()
函数。您还可以实现自定义lambda函数。
alist = [[1], [1,2,3,4], [1,2], [1,2,3,4,5,6,7], [1,2,3], [1,2,3,4,5,6,7,8]]
sorted_list = sorted(alist, key=len)
print(sorted_list)
输出:
[[1], [1, 2], [1, 2, 3], [1, 2, 3, 4], [1, 2, 3, 4, 5, 6, 7], [1, 2, 3, 4, 5, 6, 7, 8]]