一 用途
- 减少代码冗余
- 没有函数名字,也指匿名函数
- 快速实现函数功能
二 用法
- 说明:
lambda argument_list:expersion
argument_list 表示输入传入的参数
expersion 表示计算得到的输出值
2.1 直接引用函数
>>> b=lambda a,b: a+b
>>> b(3,4)
7
2.2 将函数传递给其它函数
比如:sorted、map、filter、reduce
- sorted
>>> a=[('cw',4,'it'),('pip',2,'art'),('kali',9,'xxxx')]
#按照第一排序
>>> sorted(a,key=lambda x:x[0])
[('cw', 4, 'it'), ('kali', 9, 'xxxx'), ('pip', 2, 'art')]
#按照第二个排序
>>> sorted(a,key=lambda x:x[1])
[('pip', 2, 'art'), ('cw', 4, 'it'), ('kali', 9, 'xxxx')]
>>>
- map
-- map(function, sequence)
-- 对seq里面的元素,执行function(item),返回一个指定对象
>>> list(map(lambda x: x*2,[1,2,3,4,5,6]))
[2, 4, 6, 8, 10, 12]
>>>
- filter
-- filter(function,sequence)
-- 对function执行结果为True组成一个新的列表或元组等
>>> list(filter(lambda x: x in [2,3],[1,2,3,4,5,6]))
[2, 3]
>>>
- reduce
--
-- python3中,reduce已经从全局名称空间里移除,需要从functiontools中导入
-- 有2个参数
from functools import reduce
>>> reduce(lambda x,y: x*y,[1,2,3,4,5,6])
720
2.3 联合使用
>>> reduce(lambda x,y: x+y,filter(lambda x:x%2==0,[1,2,3,4,5,6]))
12
>>>
标签:function,filter,map,python,reduce,说明,--,lambda
From: https://www.cnblogs.com/vbear/p/16712751.html