码迷,mamicode.com
首页 > 编程语言 > 详细

python3排序 sorted(key=lambda)

时间:2019-08-30 11:56:36      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:tar   协议   target   python   ext   pad   结果   函数   href   

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

  1. 先创建一个列表a                                                                                                                                                       

  2.               技术图片

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

  4.                技术图片                                                                                                                              

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

  6.             技术图片

  7. 按照第二个元素排序:                                                                                               

  8.      技术图片

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

  10.      技术图片

  11.  python3 取消了cmp 参数,可以用functools.cmp_to_key 代替   参考:https://www.zhihu.com/question/30389643?sort=created

key=lambda 元素: 元素[字段索引]

print(max(C, key=lambda x: x[0]))   

x:x[]字母可以随意修改,求最大值方式按照中括号[]里面的维度,[0]按照第一维,[1]按照第二维。

 

2、具体代码用法及输出结果如下:
2.1、取第1维
num = [(1,2.5), (1.5, 3.2), (1.3, 4.0), (2.2, 1.8)]
y,z = max(num, key=lambda x:x[0])
print(y, z)
相当于找4组坐标的第1个数的最大值,显然为2.2,因此结果如下: 

 

2.1、取第2维 
num = [(1,2.5), (1.5, 3.2), (1.3, 4.0), (2.2, 1.8)]
y,z = max(num, key=lambda x:x[1])
print(y, z)
相当于找4组坐标的第2个数的最大值,显然为4.0,因此结果如下: 


————————————————
版权声明:本文为CSDN博主「Aventador_SV」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lyq_12/article/details/86594935

python3排序 sorted(key=lambda)

标签:tar   协议   target   python   ext   pad   结果   函数   href   

原文地址:https://www.cnblogs.com/huigebj/p/11433896.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!