lambda表达式,通常是在需要一个函数,但是又不想费神去定义一个函数的时候使用,也叫匿名函数。
lambda所表示的内容应该是很简单的,如果复杂的话就干脆重新定义一个函数了。
lambda的创建语法:
lambda parameters:express(例如:lambda x:x>1)
冒号后面的是函数体,也是函数的处理逻辑,冒号前面的返回值
parameters:可选,如果提供,通常是逗号分隔的变量表达式形式,即位置参数。
expression:不能包含分支或循环(但允许条件表达式),也不能包含return(或yield)函数。如果为元组,则应用圆括号将其包含起来。
lambda的使用举例:
add = lambda x,y:x-y add(5,2) #结果为3
s = lambda x:"yes" if x==1 else "no" s(0) #结果为no s(1) #结果为yes
需求:将列表中的元素按照绝对值大小进行升序排列 list1 = [3,5,-4,-1,0,-2,-6] sorted(list1, key=lambda x: abs(x))
#把后面的迭代对象根据前面的方法筛选 a = filter(lambda x:x>5,[12,3,12,2,1,2,35]) print(next(a)) print(next(a)) print(next(a))
#输出 12 12 35
c = map(lambda x:x>5,[1,2,3,4,5,6]) print(next(c)) print(next(c)) print(next(c)) print(next(c)) print(next(c)) print(next(c)) #输出 False False False False False True