78 匿名函数(lambda)
文章目录
- 1、定义
- 2、使用"关键字参数"对匿名函数进行传参
- 3、lambda 匿名函数设定默认值
- 4、应用场合
- 匿名函数作为参数传递
- 作为内置函数的参数
- 5、实例
- 6、小结
匿名函数是指没有名字的函数,应用在需要一个函数,但是又不想费神去命名这个函数的场合。通常情况下,这样的函数只使用一次。
1、定义
在Python中,使用lambda表达式创建匿名函数,其语法格式如下:
result = lambda [arg1 [,arg2,……,argn]]:expression
lambda函数返回函数名。
参数说明:
result:用于调用lambda表达式。[arg1 [,arg2,……,argn]]:可选参数,用于指定要传递的参数列表,多个参数间使用逗号“,”分隔。expression:必选参数,用于指定一个实现具体功能的表达式。如果有参数,那么在该表达式中将应用这些参数。
注意:使用lambda表达式时,参数可以有多个,用逗号“,”分隔,但是表达式只能有一个,即只能返回一个值。而且也不能出现其他非表达式语句(如for或while)。


虽然使用lambda表达式比使用自定义函数的代码减少了一些,但是在使用lambda表达式时,需要定义一个变量,用于调用该lambda表达式。
练一练:定义匿名函数求2数之和。
2、使用"关键字参数"对匿名函数进行传参

3、lambda 匿名函数设定默认值

4、应用场合
匿名函数作为参数传递

如果求两个数的差呢?


eval() 函数用来执行一个字符串表达式,并返回表达式的值。

eval 方法能使字符串本身的引号去掉,保留字符中表达式的原本属性。

作为内置函数的参数
想一想,下面的数据如何指定按age或name排序?
stus = [{"name":"zhangsan", "age":18}, {"name":"lisi", "age":19}, {"name":"wangwu", "age":17}
]

5、实例
网上爬取的秒杀商品数据如下,每本图书包括图书名称、秒杀价格、原价。
bookinfo = [('不一样的卡梅拉(全套)',22.50,120),('Python程序开发',65.10,89.80),('摆渡人',23.40,36.00),('福尔摩斯探案全集8册',22.50,128)]
应用lambda实现对爬取到的秒杀商品信息进行排序(按秒杀价格升序排序)
在秒杀价格相同的情况下,按原价降序
折扣率 = 秒杀/原价,按折扣率升序排序
6、小结
python 使用 lambda 来创建匿名函数。所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。
lambda只是一个表达式,函数体比def简单很多。lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。lambda函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
