匿名函数
-
什么是匿名函数 lambda是个匿名函数,也是一个表达式,是函数的最小作战单元 匿名函数顾名思义,就是“无名”函数 匿名函数适用于简单的业务逻辑 一行一个函数 通俗的说逻辑不复杂,不需要大规模批量调用的功能可使用匿名函数构建,匿名函数的书写特性决定其简易性 #lambda简约而不简单 注意lambda是 python的一个关键字,用于声明一个匿名函数 **匿名函数的难点不在于其构建本身,在于其组合使用的难度! -
如何声明/调用一个匿名函数(lambda)
def add(num1):
return num1 * 2
调用:add(2)
输出:4
def add(num1,num2):
return num1 + num2
调用:add(1,2)
输出:3
result = lambda x: x*2
调用:result(2)
输出:4
result = lambda x,y: x+y
调用:result(x=1,y=2)
输出:3
- 匿名函数的几种使用方式
传统函数
def compare(x,y):
if x > y:
return x
else:
return y
调用:compare(2,1)
输出:2
匿名函数
compare = lambda x,y: x if x > y else y
调用:compare(2,1)
输出:2
schools = ["Python基础",
"Python爬虫",
"Java编程",
"Java Web",
"Python数据分析"
]
def keyword_serch(keys,func):
search_result= []
for result in keys:
if func(result):
search_result.append(result)
return search_result
condition = lambda x: True if "Python" in x else False
调用:keyword_serch(schools,condition)
输出: ["Python基础","Python爬虫","Python数据分析"]
def main():
return lambda x: True if x == 10 else False
(如果x等于10返回真,否则为假)
调用:main()(10)
执行main函数,但是main不需要传参;
第二个括弧则是为lambda传送的x的参数
输出:True
def income(basic,transport,phone):
return lambda x: x+basic+transport+phone
调用:total = income(1000,2000,3000)
total(4000)
输出:10000
schools = ["Python基础",
"Python爬虫",
"Java编程",
"Java Web",
"Python数据分析"
]
def keyword_search(keys,func):
search_result= []
for key in keys:
if func(key):
search_result.append(key)
return search_result
def search_condition(c):
return lambda x: True if c in x else False
python = search_condition("Python")
调用:keyword_search(schools,python)
输出:["Python基础","Python爬虫","Python数据分析"]
- 匿名函数的组合使用
![在这里插入图片描述](https://img-blog.csdnimg.cn/ea29ba71d1d3406f8277a927e2c45dab.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAVGFsbGJv,size_20,color_FFFFFF,t_70,g_se,x_16) map函数 ![在这里插入图片描述](https://img-blog.csdnimg.cn/3721753a2a0e4bd699d77110cfacc922.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAVGFsbGJv,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/5aef1b20b28d4279aa595ddd144e5768.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAVGFsbGJv,size_20,color_FFFFFF,t_70,g_se,x_16) filter函数 ![在这里插入图片描述](https://img-blog.csdnimg.cn/d22b3a5305a9418bb32f7206e02cedb0.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAVGFsbGJv,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/0e7236da40c44120b5f5668868f2ff75.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAVGFsbGJv,size_20,color_FFFFFF,t_70,g_se,x_16) reduce函数 ![在这里插入图片描述](https://img-blog.csdnimg.cn/ec71c7bee069442ea77c1c36ba6a876b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAVGFsbGJv,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/1883989103024ba7be6dddde47578c14.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAVGFsbGJv,size_20,color_FFFFFF,t_70,g_se,x_16) sorted函数 ![在这里插入图片描述](https://img-blog.csdnimg.cn/9b0046989791403fadb0f031511dc268.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAVGFsbGJv,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/fe22026f557e4371890456c76a3feb1a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAVGFsbGJv,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/8a4f26fbf38647e4a5fba098268c62b3.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAVGFsbGJv,size_20,color_FFFFFF,t_70,g_se,x_16)
|