如果我们想写如下这样一个函数
一般情况我们会这样写:
def func(a, b, c, d, e, f, x, y):
return a*x*x + b*x*y + c*y*y + d*x + e*y + f
有一种可读性更强的写法(利用lambda):
lambda A:B
A:输入,B:输出
def func(a, b, c, d, e, f):
return lambda x,y:a*x*x + b*x*y + c*y*y + d*x + e*y + f
调用如下:
func( 2, -1, 4, 12, -9, 18)(x = 1, y = 1))
这样我们就只把x,y当成变量,而a, b, c, d, e, f看成系数了。
lambda也经常用与排序中:
list1 = [["d",1], ["a",3], ["c",2], ["b",5], ["e",4]]
sort_list_1 = sorted(list1, key=lambda x:x[0]) # 根据第一个元素排序
sort_list_2 = sorted(list1, key=lambda x:x[1]) # 根据第二个元素排序
print(sort_list_1)
print(sort_list_2)
output:
[['a', 3], ['b', 5], ['c', 2], ['d', 1], ['e', 4]]
[['d', 1], ['c', 2], ['a', 3], ['e', 4], ['b', 5]]