2021年5月27日 / 55次阅读 / Last Modified 2021年5月27日
下面用sorted函数来距离lambda在排序时的使用!
简单的排序,甚至都可以不使用lambda函数:
>>> a = [3,2,6,5,1,3,9,2]
>>> sorted(a)
[1, 2, 2, 3, 3, 5, 6, 9]
>>> sorted(a, key=lambda x:x)
[1, 2, 2, 3, 3, 5, 6, 9]
有一种排序,数据有多个维度,要求按照某一个维度进行排序:
>>> c = [(1,2),(1,3),(1,4),(2,1),(3,1)]
>>> sorted(c)
[(1, 2), (1, 3), (1, 4), (2, 1), (3, 1)]
>>> sorted(c, key=lambda x:x[0])
[(1, 2), (1, 3), (1, 4), (2, 1), (3, 1)]
>>> sorted(c, key=lambda x:x[1])
[(2, 1), (3, 1), (1, 2), (1, 3), (1, 4)]
注意一个细节,sorted函数python官方保证是稳定的排序算法,即在key值相同的情况,能够保证原来的顺序不变!
复杂一点,list中即有正数,也有复数,要求先排正数,从小到大,然后排复数,从大到小:
>>> b = [4,2,5,1,-5,-8,-12,-5,9]
>>> sorted(b)
[-12, -8, -5, -5, 1, 2, 4, 5, 9]
>>> sorted(b, key=lambda x:(x<0,abs(x)))
[1, 2, 4, 5, 9, -5, -5, -8, -12]
用来比较的key变成了一个tuple,实际上排序就变成了tuple之间的比较,按index顺序比较,如果相同,index增加继续比较。
-- EOF --
本文链接:https://www.pynote.net/archives/3698
前一篇:把位移运算括起来!!
后一篇:math.tau=2π
Ctrl+D 收藏本页
©Copyright 麦新杰 Since 2019 Python笔记