Python--lambda函数

什么是lambda函数?

lambda函数,因其组成部分只有参数列表(argument_lsit),表达式(expression)二部分,也被称为匿名函数。

语法格式如下

lambda argument_list:expression

 

其中,argument_list的形式非常多,可以有以下几种:

  • a, b
  • a=1, b=2
  •  *args
  •  **kwargs
  •  a, b=1, *args

expression是关于参数的一个表达式,表达式中出现的参数需要在argument_list中有定义,并且表达式只能是单行的,如下:

  • 1
  •  None
  • a + b
  • sum(a)
  • 1 if a >10 else 0

 

最简单的示例:

t = lambda a, b: a + b  # 将匿名函数传给t变量
ressult = t(1,2) 
print(ressult) # 3

注意:

x = 6
s = lambda :x*x
print(s()) # 36

如果上面等同于这种写法

s = lambda x: x*x
print(s(6))

使用场景

lambda的使用场景并不多,而且在我们平时学习阶段也好,开发阶段也好,很难用到,或者说能用的时候也想不起来。

个人认为比较常见的场景有3种:

第一种:将lambda表达式赋给一个变量,例如上面的简单示例

第二种:将lambda表达式当做函数的返回值,

第三种:当做参数传递给其他函数,这种用法比较典型的就是python中的filter,sorted,map等内置函数。(插一句,filter与map函数完全可以用推导式代替,而且更加简单明了,龟叔一直想把这两个函数舍弃- -。)

示例:

1、将能被3整除的元素过滤出来
filter(lambda x: x % 3 == 0, [1, 2, 3])  

2、绝对值排序

print(sorted([1, 2, -3, 4, -5, 6, -7, 8, -9])) # [-9, -7, -5, -3, 1, 2, 4, 6, 8]
print(sorted([1, 2, -3, 4, -5, 6, -7, 8, -9], key=lambda x: abs(x))) # [1, 2, -3, 4, -5, 6, -7, 8, -9]

lambda作为一个平时很不起眼,但关键时候能用到的技巧,还是值得我们花一点时间去学习,总结一下的。

尤其是在一些python开源项目的源码中,用的很精巧。(我记得在看celery还是rabbitmq的源码来着,主要是第一种,第二种用法)

 

如果本篇文章对你有帮助,可否在文章右侧点个赞再走呢~~

 

本文为原创,转载请注明出处

 

python魔法方法(部分)

python避坑篇

python complex函数

python开发手册

python内置函数(下)

python内置属性,函数

python异常处理

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值