sorted小结
我们常用类似于冒泡排序、快速排序等进行数字上的排序,在python中,我们可以用sorted函数对字符串与字典中的内容进行比较。
sorted([36, 5, -12, 9, -21])
#排序后[-21, -12, 5, 9, 36]
此外,sorted函数可以通过设置key的形式限定排序方式,例如:
sorted([36, 5, -12, 9, -21], key=abs)
#排序后[5, 9, -12, -21, 36]
这样限定列表以绝对值形式排序。
对于字符串,默认的顺序是ascii码从小到大的排序,通过限制key可完成无视大小写等操作,进行反向排序,需要介入第三个参数reverse = True
sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True)
#忽略大小写的反向排序['Zoo', 'Credit', 'bob', 'about']
对于字典格式,选择排序方法可以在key中设置字典中的索引类型。
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
#根据名字排序
def by_name(t):
return t[0]
L1 = sorted(L, key=by_name)
#[('Adam', 92), ('Bart', 66), ('Bob', 75), ('Lisa', 88)]
#根据成绩从高到底
def by_score(t):
return -t[1]
L2 = sorted(L,key=by_score)
#[('Adam', 92), ('Lisa', 88), ('Bob', 75), ('Bart', 66)]
使用sorted函数,可以减少排序算法的思维复杂,减少了反复造轮子的复杂性