一、lambda表达式一般用法
lambda argument: manipulate(argument)
Example:
add = lambda x, y: x + y
print(add(3, 5))
# Output: 8
二、 lambda表达式在sort中的使用
1、sort基本用法
- sort()函数用来对list数据类型进行排序。reverse为True时,从大到小进行排序;默认为False,从小到大进行排序。
- sort函数在原list进行排序,sorted函数返回一个新的list。
-
先创建一个列表a。
a=[6,1,2,3,4,5]
-
直接使用sorted方法,返回一个列表就是排序好的
sorted(a) 运行结果为: [1, 2, 3, 4, 5, 6]
区别:sort()属于永久性排列,直接改变该list; sorted属于暂时性排列,会产生一个新的序列。
b=a.sort(reverse=False) print(b) #结果为None print(a) #为排序后的a print(a.sort())#结果为None
-
假如a是一个由元组构成的列表,我们需要用到参数key,即关键词。
(1)如按照绝对值大小进行排序:
>>> sorted([8,3,8,11,-9],key=abs) [3, 8, 8, -9, 11]
(2)key指定的函数将作用于list中的每一个元素上,根据key函数返回的结果进行排序。
>>> sorted(['abc','Abc','Cba','bAc']) 结果:['Abc', 'Cba', 'abc', 'bAc']
默认的,对于字符串,sorted函数按照ASCII的大小进行排序,因为C<a,大写的C会排在小写的a前面。
(3)如果我们想要达到忽略大小写的排序,只需要更改一下key函数
>>> sorted(['abc','Abc','Cba','bAc'],key=str.lower)
结果:['abc', 'Abc', 'bAc', 'Cba']
(4)结合lamda排序
lambda是一个隐函数,是固定写法;x表示列表中的一个元素,表示一个元组(x只是临时起的一个名字,你可以使用任意的名字);x[0]表示元组里的第一个元素,当然第二个元素就是x[1];则key=lambda x: x[0]的意思就是按照列表中第一个元素排序 。
a = [(1, 2), (4, 1), (3, 10), (13, -3)]
a.sort(key=lambda x: x[0])
print(a)
按照第二个元素排序的示例如下:
a = [(1, 2), (4, 1), (9, 10), (13, -3)]
a.sort(key=lambda x: x[1])
print(a)