python之lambda函数/表达式
2024-10-19 06:21:05
lambda函数也叫匿名函数,允许快速定义单行函数。通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。
格式
lambda argument_list: expression
lambda与def的区别
1)def创建的方法是有名称的,而lambda没有;
2)lambda会返回一个函数对象,但这个对象不会赋给一个标志符,而def则会把函数对象赋值给一个变量(函数名);
3)lambda只是一个表达式,而def是一个语句;
4)lambda表达式“:”后面只能有一个表达式,而def则可以有多个;
5)if、for、print等语句不能用于lambda中;
6)lambda一般用于定义简单的函数;
7)lambda函数不能共享给别的程序调用;
lambda使用
1、应用在函数式编程中
Python提供了很多函数式编程的特性,如:map、reduce、filter、sored等函数都支持函数做为参数,lambda函数就可以应用在函数式编程中。
# 需求:将列表中的元素按照绝对值大小进行升序排列
list1 = [3,5,-4,-1,0,-2,-6]
sorted(list1, key=lambda x: abs(x))
2、应用在闭包中
如果在一个函数的内部定义了另一个函数,外部的我们叫他外函数,内部的我们叫他内函数。
闭包:在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。
def get_y(a,b):
return lambda x:a*x+b
y1 = get_y(2,1)
y1(2) # 结果为5
最新文章
- 【整理】C#文件操作大全(SamWang)<;转>;
- java 内部类1
- linux 大并发下 内核优化
- 【转载】 使用Anemometer基于pt-query-digest将MySQL慢查询可视化
- poj3683 Priest John's Busiest Day
- C/C++:拷贝构造函数
- hdu 4104
- javascript原型链继承
- 从ASP.NET Web API 2 (C#)开始说起
- Linux命令学习-useradd和usermod
- Textbox服务器控件
- 利用css实现页面加载时旋转动画
- Windows10 + Matlab2013 mex C++ 调用gsl
- c语言之控制语句:循环
- Mybatis集成Oracle
- 3.Redis高级功能
- sql文件或连接数据库反向生成pdm文件
- 洛谷 P4345 [SHOI2015]超能粒子炮&#183;改 解题报告
- Linux内核分析第一周总结
- 2. 修改myeclipse默认用户和时间