python lambda 表达式
2020-02-22 本文已影响0人
清水秋香
- 匿名函数
python 使用 lambda 来创建匿名函数。
lambda只是一个表达式,函数体比def简单很多。
lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
语法
lambda函数的语法只包含一个语句,如下:
lambda [arg1 [,arg2,.....argn]]:expression
>>> def f(x):
... return x*x
>>> f(2)
4
>>> lambda x:x*x
<function <lambda> at 0x1032a0f28>
>>> f = lambda x:x*x
>>> f(2)
4
>>>
>>> def add(a,b):
... return a+b
>>> add(1,2)
3
>>> f = lambda a,b:a+b
>>> f(1,2)
3
>>> def uadradic(a,b,c):
... return lambda x:a*x*x + b*x + c
>>> print(uadradic(1,-1,2)(5))
22
#也可以带入分支结构
>>> def getsex(sex):
... if sex == '男':
... return 'man'
... else:
... return 'woman'
>>>
>>> sex = getsex('男')
>>> print(sex)
man
>>> getsex = lambda sex: 'man' if sex == '男' else "woman"
>>> result = getsex('男')
>>> print(result)
man