python 的lambda
来源:互联网 发布:数据联邦 编辑:程序博客网 时间:2024/05/17 20:29
一、lambda函数
1、lambda函数基础:
lambda函数也叫匿名函数,即,函数没有具体的名称,而用def创建的方法是有名称的。如下:
"""命名的foo函数"""def foo():return 'beginman' #Python中单行参数可以和标题写在一行
"""lambda关键字创建匿名函数,该表达式同以上函数"""lambda:'beginman'
上面的只是简单的用lambda创建一个函数对象,并没有保存它也没有调用它,时刻会被回收了。这里我们保存并调用:
bar = lambda:'beginman'print bar() #beginman
从上面几个例子中,可易理解Python lambda语法:
lambda [arg1[,arg2,arg3....argN]]:expression
lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值。lambda语句构建的其实是一个函数对象。
print lambda:'beginman' #<function <lambda> at 0x00B00A30>
2、无参数
如果没有参数,则lambda冒号前面就没有,如以上例子。
3、有参数
def add(x,y):return x+yadd2 = lambda x,y:x+yprint add2(1,2) #3def sum(x,y=10):return x+ysum2 = lambda x,y=10:x+yprint sum2(1) #11print sum2(1,100) #101
二、lambda与def
上面的例子中,可知lambda函数只是创建简单的函数对象,是一个函数的单行版本,但是这种语句由于性能的原因,调用的时候绕过函数的栈分配。python lambda还有哪些和def不一样呢?
1 、python lambda会创建一个函数对象,但不会把这个函数对象赋给一个标识符,而def则会把函数对象赋值给一个变量。
如:
>>> def foo():return 'foo()'>>> foo<function foo at 0x011A34F0>
2、python lambda它只是一个表达式,而def则是一个语句。lambda表达式运行起来像一个函数,当被调用时创建一个框架对象。
0 0
- Python的lambda函数
- python 的 lambda用法
- python 的lambda
- python的lambda使用
- Python的Lambda表达式
- Python的Lambda表达式
- python lambda的使用
- python lambda的用法
- Python的Lambda表达式
- Python lambda的学习
- python 的lambda
- python lambda的用法
- Python的lambda匿名函数
- python的lambda函数介绍
- python的lambda函数介绍
- Python的lambda匿名函数
- Python的lambda匿名函数
- Python的lambda匿名函数
- linux网络编程之setsockopt()函数来设置socket状态以及getsockopt函数只用总结
- 数据结构与算法in C&C++(1)/SWAP
- 文章标题
- 补间动画的实现
- Java动态代理深入解析
- python 的lambda
- GYM 100883 E.xortion(字典树)
- MXNet设计笔记之:深度学习的编程模式比较
- 自定义dialog
- Java String 类
- 获取主页面发送给二级页面的url地址
- cocos2d里的法线贴图
- Android6.0来电流程
- train_test_split(X, y, stratify=y)