码迷,mamicode.com
首页 > 编程语言 > 详细

python3 匿名函数

时间:2018-06-12 20:59:50      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:列表   cal   必须   读取   color   关键字   如何   return   pre   

在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 匿名函数

标签:列表   cal   必须   读取   color   关键字   如何   return   pre   

原文地址:https://www.cnblogs.com/children92/p/9174884.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!