python3 匿名函数

在Python3 中有一种专门用来做返回的函数,这个函数就是匿名函数

如何定义匿名函数?
使用关键字lambda ##

lambda 形参:返回值

主要的作用是减小代码长度

def calc(x):
    return x+1
res=calc(10)
print(res)

但是用lambda 之后可以这样:

name=lambda x:x+1 
print(name(10)) 

运行结果:

11

匿名函数也可以传入多个参数,返回多个值

lambda x,y,z:(x+1,y+1,z+1)

相比来说匿名函数确实可以缩小代码的长度和复杂程度
用较短的代码达到正常代码的效果
建议是配合其他函数一起使用的,不应该独立存在

array=[1,3,4,71,2] #定义一个列表
def add_num(x): #定义一个函数
    return x+1 #返回值
def map_test(func,array): #定义一个函数
    ret=[] #空列表
    for i in array: #for 循环,读取参数
        ret.append(func(i)) #将i 传入func这个函数,然后返回值追加到ret这个列表
    return ret
print(map_test(add_num,array)) #调用add_num 这个函数和传入array这个列表,运行打印结果

如果在函数内调用其他函数就必须要先定义函数才可以调用,但是如果采用匿名函数的话,可以直接传进函数内

array=[1,3,4,71,2] ##定义一个函数
def map_test(a,array): #定义一个函数
    ret=[]#空列表
    for i in array:  #for 循环,读取参数
        ret.append(a(i))# 返回值追加到ret这个列表 a(i) 相当于lambda i:i-1
    return ret
print(map_test(lambda x:x+1,array)) #利用匿名函数,将func这个函数定义为lambda x:x-1 传入map_test这个函数进行运算,a(i) 相当于lambda i:i-1
name=[1,2,3,4,5,6]
def find_name(func,x):
    li=[]
    for i in x:
        li.append(func(i))
    return li
print(find_name(lambda x:x+10,name))

猜你喜欢

转载自www.cnblogs.com/children92/p/9174884.html