使用方式
没有参数
a=lambda:"waht is my purpose?"
b=a
print(id(a))
print(id(b)) # 通过打印ID可知,a和b是指向同一个lambda表达式的(也说明lambda表达式也是临时变量在内存中保存的)。
b()
140291082896656
140291082896656
'waht is my purpose?'
有一个或者多个参数
c=lambda x:3*x+1
c(2)
7
d=lambda x,y:(x*y)**0.5
d(2,3)
2.449489742783178
实例
排序实例
- L.sort函数排序是对原始数据的直接排序
- key = 后面的函数是对需要排队的某一个对象做处理,不是对整个列表处理
scif_auth=["isaa asimov","ray bradbury","c clarke","frank herbert","orson scott card","douglas adams"]
scif_auth.sort(key=lambda name:name.split(" ")[-1].lower()) #
print(scif_auth)
['douglas adams', 'isaa asimov', 'ray bradbury', 'orson scott card', 'c clarke', 'frank herbert']
Quadratic functions case
- 函数调用有两种方式。第一种是将lambda表达式赋值给一个变量名,然后通过该变量名传入参数调用。
- 第二种是直接调用不需要赋值给一个变量名
def build_quadratic_fun(a,b,c):
return lambda x:a*x**2+b*x+c
f=build_quadratic_fun(2,3,-5)
f(2)
9
build_quadratic_fun(2,3,-5)(2)
9
总结
- lambda function 在你需要零时用一下,用完即丢弃,且函数比较简单的情况下非常有用。
引用
主要参考下列视频内容,翻译并亲测代码后形成此文,感谢视频作者的无私奉献!