怎么在Python3中使用匿名函数

本篇文章给大家分享的是有关怎么在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中使用匿名函数,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注恰卡编程网行业资讯频道。

发布于 2021-04-15 01:56:06
收藏
分享
海报
0 条评论
166
上一篇:使用Python怎么实现异步操作MySQL 下一篇:怎么在微信小程序中自定义组件传值
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码