原文:
使用python对列表(list)进行排序,说简单也简单,说复杂也复杂,我一开始学的时候也搞不懂在说什么,只能搜索一些英文文章看看讲解,现在积累了一些经验,写在这里跟大家分享,我们通过例子来详细解释一下函数sorted的具体用法:
先创建一个列表a
直接使用sorted方法,返回一个列表b,b就是排序好了的
假如a是一个由元组构成的列表,这时候就麻烦了。
我们需要用到参数key,也就是关键词,看下面这句命令,lambda是一个隐函数,是固定写法,不要写成别的单词;a_tuple表示列表中的一个元素,在这里,表示一个元组,a_tuple只是临时起的一个名字,你可以使用任意的名字;a_tuple[0]表示元组里的第一个元素,当然第二个元素就是a_tuple[1];所以这句命令的意思就是按照列表中元组里的第一个元素进行排序。
按照元组里的第二个元素排序
除了key参数可以实现这个功能外,还可以使用cmp参数,注意看,这里不同之处是使用了x和y两个元组,他俩都是临时起的名字,你可以任意更改,我们用x表示列表里第一个元素,y表示列表里第二个元素,x[1]表示第一个元组的第二个元素,同理y[1]也是,而cmp()就是比较函数,也就是说,比较x[1]和y[1]的大小。
我们还可以使用reverse参数实现倒序排列
如果你现在还不能理解,先记住他们的固定写法,写多了自然就懂了。
下一篇文章讲更加深入的一个排序方法,在写法上更见简单,请看传送门:http://jingyan.baidu.com/article/f3ad7d0ffe8e1409c2345b48.html
Python sorted() 函数
描述
sorted() 函数对所有可迭代的对象进行排序操作。
sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
语法
sorted 语法:
sorted(iterable[, cmp[, key[, reverse]]])
参数说明:
- iterable -- 可迭代对象。
- cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
- key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
- reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
返回值
返回重新排序的列表。