升序排序:
>>> d = [3, 2, 4, 1]
>>> d.sort()
>>> d
[1, 2, 3, 4]
降序排序:
>>> d = [3, 2, 4, 1]
>>> d.sort(reverse = True)
>>> d
[4, 3, 2, 1]
自定义排序:
按个位数大小排序
>>> d = [11, 0, 28, 123, 9]
>>> def cmp(x):
return x % 10
>>> d.sort(key = cmp)
>>> d
[0, 11, 123, 28, 9]
当然可以写成匿名函数的形式
>>> d = [11, 0, 28, 123, 9]
>>> d.sort(key = lambda x : x % 10)
>>> d
[0, 11, 123, 28, 9]
按第二个元素大小排序
>>> d = [[1, 2], [3, 1], [5, -1]]
>>> d.sort(key = lambda x : x[1])
>>> d
[[5, -1], [3, 1], [1, 2]]
基于比较的排序:
采用cmp_to_key()函数,可以接受两个参数,将两个参数做处理
它在list中的工作机制就是将列表中的元素去两两比较,当cmp返回是正数时交换两元素
等于写0,小于写-1,大于写1
# 拼接最大数
from functools import cmp_to_key
d = [2, 30, 14, 7, 9]
def cmp(a, b):
if str(a) + str(b) < str(b) + str(a):
return 1 #交换
elif str(a) + str(b) > str(b) + str(a):
return -1 #不交换
else:
return 0 #二者相等
d.sort(key = cmp_to_key(cmp))
print(d)