这是一个表达式,更确切的说是函数,是一个一行函数,又称匿名函数,有些语言里称闭包。其语法结构如下:
lambda 传入参数 : 返回的计算表达式
lambda表达式冒号前为传入参数列表(可多个),冒号为计算表达式,通常只能跟一个表达式,可以使用if结构,如下所示。
f = lambda x, y : x if x > y else y
f(2, 3)
lambda表达式可以嵌套,即lambda冒号后的语句也是一个lambda表达式。
取二维列表每行最大值
li = [] li.append([11, 2, 4, 3]) li.append([12,22, 14, 30]) li.append([1, 12, 41, 34]) print (li) f = lambda x : lambda y : max(y[x]) print (f(0)(li)) print (f(1)(li)) print (f(2)(li)) lmax = [f(i)(li) for i in range(3)] print (lmax)
程序执行结果:
[[11, 2, 4, 3], [12, 22, 14, 30], [1, 12, 41, 34]]
11
30
41
[11, 30, 41]
文末福利:(人工智能的本质与未来)
https://url12.ctfile.com/f/49054212-987754699-fa580b?p=2265 (访问密码: 2265)