我正在做我的小作业.我想用我定义的函数对列表进行排序.
为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]]
我已经可以按照它的长度对列表进行排序而没有该功能,所以如果您有任何想法,请告诉我.谢谢!
您可以使用内置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]]