python匿名函数lambda用法

时间:2022-06-01 20:52:03

介绍匿名函数之前不妨先看看这两个函数:

def add(x,y):
    return x+y
print(add(1,2))   #3
f=lambda x,y:x+y
print(f(1,2))

上面这两段代码实现的功能是完全一样的。第二段代码里面:lambda x,y:x+y  这就是一个函数,由于没有函数名称,所以称匿名函数。

下面仔细介绍一下匿名函数:

1、匿名函数:没有函数名字。用lambda声明。
2、匿名函数的格式:
     lambda arg1,arg2,.....argn:expression
   冒号是分隔符,冒号前是函数的参数,冒号后带上一个表达式。
3、匿名函数不需要用return。后面的表达式就是返回值
4、调用方法:将匿名函数赋值给一个变量,然后这个变量就可以像一个正常的函数一样使用

 

# 无参数:
f=lambda :'abc'
print(f())    #'abc'

#带多个参数的
f=lambda a,b,c: a+b+c
print(f(1,2,3))   #6

#带默认参数
f=lambda a,b,c=4: a+b+c
print(f(1,2))    #7

 

匿名函数的高级使用技巧:结合map.reduce,filter使用:

from functools import  reduce
data=[1,2,3,4,5,6,7,8,9,10]
print(reduce(lambda x,y:x+y,data))   #55

  

data=[1,2,3,4,5,6,7,8,9,10]
print(list(map(lambda x:x*x,data)))  
#输出为[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]