python lambda函数及三个常用的高阶函数
进行编程时,一般我们会给一个函数或者变量起一个名字,该名称是用于引用或寻址函数变量。但是有一个低调的函数,你不需要赋予它名字,因此该函数也叫匿名函数。该函数就是Python中的Lambda函数,下面就来为大家解析python—lambda函数,三个常用的高阶函数。
为什么要使用PythonLambda函数?
匿名函数可以在程序中任何需要的地方使用,但是这个函数只能使用一次,即一次性的。因此PythonLambda函数也称为丢弃函数,它可以与其他预定义函数(如filter(),map()等)一起使用。相对于我们定义的可重复使用的函数来说,这个函数更加简单便捷。
""" lambda参数列表:返回值 lambda参数形式: 1.无参数:lambda:100 2.一个参数:lambdaa:a 3.默认参数:lambdaa,b,c=100:a+b+c 4.可变参数:*args,返回元组 lambda*args:args 5.可变参数:*kwargs,返回字典 lambda**kwargs:kwargs lambda应用:简化代码 1.判断,lambdaa,b:aifa>belseb 2.列表数据按字典key值排序 """ #deffn1(): #return100 #defde1(): #r=fn1() #print(r) #r2=lambda:100 #print(r2)#地址:. at0x00CCD6E8> #print(r2())#返回值:100 #deftest2(): """ lambda测试案例 """ #fn1=lambdaa,b:a+b #print(fn1(1,2)) #fn2=lambda*args:args #print(fn2(1,2,3)) #print(fn2(1,3)) #print(fn2(1))#(1,) #fn3=lambda**kwargs:kwargs #print(fn3(name='py',age=30)) # #fn4=lambdaa,b:aifa>belseb #print(fn4(100,200)) # #student=[{'name':'a','id':'1','tel':'a1'}, #{'name':'b','id':'2','tel':'b2'}, #{'name':'c','id':'3','tel':'c3'}] #student.sort(key=lambdax:x['name']) #print(student) #student.sort(key=lambdax:x['name'],reverse=True) #print(student) #student.sort(key=lambdax:x['id']) #print(student) """ 高阶函数:defadd_num(a,b,f) 内置高阶函数: 1.map(func,list): 将func应用于list中的每一个元素,返回一个迭代器 2.reduce(func,list): 计算结果与下一个数据做累积计算,必须有两个参数 fromfunctoolsimportreduce 3.filter(func,list): 过滤掉不符合条件的元素,返回一个filter对象,可用list()转换 """ #defadd_num(a,b,f): ##传入函数f #returnf(a)+f(b) #deffunc(x): #returnx**2 fromfunctoolsimportreduce defadd_2(a,b): returna+b deffunc3(x): returnx%2==0 defmain(): """ 体验高阶函数 :return: """ #print(abs(-2))#求绝对值 #print(round(0.1))#四舍五入 #s1=add_num(1,2,abs) #s2=add_num(1,2.5,round) #print(s1,s2) list1=[1,2,3,4,5] #map(func,list1) #print(list(map(func,list1))) #s=reduce(add_2,list1) #print(s) r=filter(func3,list1) print(r)# print(list(r))#[2,4] if__name__=='__main__': main()
总结
以上所述是小编给大家介绍的pythonlambda函数及三个常用的高阶函数,希望对大家有所帮助!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。