怎么在Python3中使用匿名函数
本篇文章给大家分享的是有关怎么在Python3中使用匿名函数,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
概述
匿名函数,顾名思义即没有名称的函数,和def定义的函数的最大区别在于匿名函数创建后返回函数本身(即匿名函数不需要return来返回值),表达式本身结果就是返回值,而def创建后则赋值给一个变量名,在Python中,我们利用关键词lambda创建匿名函数,以下是匿名函数lambda表达式的形式:
lambda arg1,arg2,.....argn:expression
以下为一些lambda的特点:
lambda 是一个表达式,而不是一个语句,即我们可以在任何可以使用表达式的场景一样使用lambda。
lambda 的主体也是一个表达式,即和def定义的函数一样,lambda也有函数主体,不过lambda的主体仅仅是一个表达式,所以其使用的功能受到较大的限制。
lambda使用
无参匿名函数
#可以将lambda直接传递给一个变量,像调用一般函数一样使用 B=lambda:True print(B()) #等价于 defBF(): returnTrue print(BF())
示例结果:
TrueTrue
有参匿名函数
支持多个参数
参数无默认值
two_sum=lambdax,y:x+y #等同于: deftwo_sum(x,y):returnx+y print(two_sum(1,2))
示例结果:
3
参数带默认值
sum_with_100=lambdax,y=100:x+y #等同于: defsum_with_100(x,y=100):returnx+y print(sum_with_100(200))
示例结果:
300
从后面传参
之前的示例我们将lambda匿名函数赋值一个变量,通过类似def定义的函数的方式传参,我们可以在lambda后面直接传递参数:
two_sum=(lambdax,y:x+y)(3,4) print(two_sum)
示例结果:
7
嵌套使用
将lambda嵌套到普通函数中,lambda函数本身做为return的值,构建简单的闭包
defsum(x): returnlambday:x+y sum_with_100=sum(100) result=sum_with_100(200) print(result)
示例结果:
300
一些使用实例
1. 结合三元表达式求两值中最小值
lower=lambdax,y:xifx<yelsey print(lower(7,100))
实例结果:
7
2. 对字典某一键值进行排序
d=[{"order":3},{"order":1},{"order":2}] #根据order键值排序 d.sort(key=lambdax:x['order']) print(d)
实例结果
[{'order': 1}, {'order': 2}, {'order': 3}]
以上就是怎么在Python3中使用匿名函数,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注恰卡编程网行业资讯频道。
推荐阅读
-
在 Linux上安装 pip3 的完整步骤
-
Python3的re.match函数语法是什么
Python3的re.match函数语法是什么这篇文章主要介绍“P...
-
Python3的re.match函数怎么用
Python3的re.match函数怎么用本篇内容主要讲解“Pyt...
-
Python3的re.search函数语法是什么
Python3的re.search函数语法是什么本文小编为大家详细...
-
Python3的re.search方法怎么用
Python3的re.search方法怎么用本篇内容主要讲解“Py...
-
Python3中re.match与re.search的区别是什么
Python3中re.match与re.search的区别是什么本...
-
Python3中SMTP的语法是什么
Python3中SMTP的语法是什么本文小编为大家详细介绍“Pyt...
-
怎么在Python3中使用OpenCV实现实时摄像头人脸检测
怎么在Python3中使用OpenCV实现实时摄像头人脸检测这篇文...
-
python3(scrapy框架的执行流程)
python3,scrapy框架的执行流程,恰卡网带你了解更多相关信息。scrapy框架概述:Scrapy,Python开...
-
Python3 A*寻路算法的示例分析
这篇文章主要介绍了Python3A*寻路算法的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有...