列表排序
https://www.cnblogs.com/whaben/p/6495702.html
1、简单的升序排序是非常容易的。只需要调用sorted()方法。它返回一个新的list,新的list的元素基于小于运算符(__lt__)来排序。
>>> sorted([5, 2, 3, 1, 4]) [1, 2, 3, 4, 5]
2、你也可以使用list.sort()方法来排序,此时list本身将被修改。通常此方法不如sorted()方便,但是如果你不需要保留原来的list,此方法将更有效。
>>> a = [5, 2, 3, 1, 4] >>> a.sort() >>> a [1, 2, 3, 4, 5]
延伸:
l = [2, 1, 3] print(l) print("==========排序==========") # sorted()函数 递减排序 print(sorted(l, reverse=True)) # sort() 递增排序 l.sort(reverse=False) print(l)
输出:
[2, 1, 3]
==========排序==========
[3, 2, 1]
[1, 2, 3]
3、复杂情况下的排序:sorted和lambda
假如a是一个由元组构成的列表,这时候就麻烦了,我们需要用到参数key,也就是关键词,看下面这句命令,lambda是一个隐函数,是固定写法,不要写成别的单词;x表示列表中的一个元素,在这里,表示一个元组,x只是临时起的一个名字,你可以使用任意的名字;x[0]表示元组里的第一个元素,当然第二个元素就是x[1];所以这句命令的意思就是按照列表中第一个元素排序
a = [('b', 4), ('a', 0), ('c', 2), ('d', 3)] b = sorted(a, key=lambda x: x[0]) print(b)
输出:
[('a', 0), ('b', 4), ('c', 2), ('d', 3)]