简单来说,lambda
函数用来定义简单的,能够在一行内表示的函数。
语法格式如下:
lambda arg1,arg2,... : experssion
案例:
>>> f = lambda x,y: x+y
# 等价于
>>> def f(x,y):
... return x + y
lambda
函数一般不会直接定义,主要用于不会被反复调用的匿名函数的定义,节省内存,通常是作为参数传递给其他函数作为参数使用。
案例:
复杂数据的排序
>>> ls = [['张三',80],['李四',76],['王五',90]] # 对这个列表安装成绩从小到大排序
如果直接调用ls.sort()
,是按照内层元素的第一个元素,也即是姓名排序,列表的顺序不变。
>>> ls.sort()
>>> ls
[['张三', 80], ['李四', 76], ['王五', 90]]
列表的.sort()
方法接受一个key
参数,这个参数可以是一个函数,它的参数是列表中的元素,它的返回值用来排序。
>>> ls.sort(key=lambda x: x[1])
>>> ls
[['李四', 76], ['张三', 80], ['王五', 90]]