Python教程:sorted()排序详解

原文

使用python对列表(list)进行排序,说简单也简单,说复杂也复杂,我一开始学的时候也搞不懂在说什么,只能搜索一些英文文章看看讲解,现在积累了一些经验,写在这里跟大家分享,我们通过例子来详细解释一下函数sorted的具体用法:

  1. 先创建一个列表a

  2. 直接使用sorted方法,返回一个列表b,b就是排序好了的

  3. 假如a是一个由元组构成的列表,这时候就麻烦了。

  4. 我们需要用到参数key,也就是关键词,看下面这句命令,lambda是一个隐函数,是固定写法,不要写成别的单词;a_tuple表示列表中的一个元素,在这里,表示一个元组,a_tuple只是临时起的一个名字,你可以使用任意的名字;a_tuple[0]表示元组里的第一个元素,当然第二个元素就是a_tuple[1];所以这句命令的意思就是按照列表中元组里的第一个元素进行排序。

  5. 按照元组里的第二个元素排序

  6. 除了key参数可以实现这个功能外,还可以使用cmp参数,注意看,这里不同之处是使用了x和y两个元组,他俩都是临时起的名字,你可以任意更改,我们用x表示列表里第一个元素,y表示列表里第二个元素,x[1]表示第一个元组的第二个元素,同理y[1]也是,而cmp()就是比较函数,也就是说,比较x[1]和y[1]的大小。

  7. 我们还可以使用reverse参数实现倒序排列

  8. 如果你现在还不能理解,先记住他们的固定写法,写多了自然就懂了。

  9. 下一篇文章讲更加深入的一个排序方法,在写法上更见简单,请看传送门:http://jingyan.baidu.com/article/f3ad7d0ffe8e1409c2345b48.html

Python sorted() 函数

Python 内置函数 Python 内置函数


描述

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 升序(默认)。

返回值

返回重新排序的列表。


猜你喜欢

转载自blog.csdn.net/u011511601/article/details/79917216