sorted作为python的内置全局方法,用于可迭代序列的排序。
sorted函数接受3个参数:
sorted(iterable,key,reverse)
sorted函数有以下特点:
1)对列表排序,返回的对象不会改变原列表
>>> list =[1,2,3,6,4,5]
>>> list
[1, 2, 3, 6, 4, 5]
>>> sorted(list)
[1, 2, 3, 4, 5, 6]
>>> sorted(list,reverse=False)
[1, 2, 3, 4, 5, 6]
>>> list
[1, 2, 3, 6, 4, 5]
>>> sorted(list,reverse=True)
[6, 5, 4, 3, 2, 1]
>>> list
[1, 2, 3, 6, 4, 5]
2)根据自定义规则进行排序,通过参数key来改变排序的规则
list=[1,3,4,5,6,8]
>>> sorted(list,key =lambda x:abs(5-x))
[5, 4, 6, 3, 8, 1]
>>> list
[1, 3, 4, 5, 6, 8]
通过key参数可以进行更加复杂的排序,如可以对元组构成的列表进行排序,自定义类排序,亦可根据key和lambda的结合进行多字段排序。
sorted的高级使用方式主要是通过key实现的。key接受的值,表示此元素的权值,sort将按照权值大小进行排序。
内置函数sorted与list的方法sort的区别:
用法是相同的,最大的不同在于,sort()方法不会生成一个新的list,而是在原有的list上进行修改;sorted()方法则是生成一个新的可迭代序列