python3 匿名函数
Posted children92
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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))
以上是关于python3 匿名函数的主要内容,如果未能解决你的问题,请参考以下文章