Python中常用的高阶函数实例详解
前言
高阶函数指的是能接收函数作为参数的函数或类;python中有一些内置的高阶函数,在某些场合使用可以提高代码的效率.
lambda
当在使用一些函数的时候,我们不需要显式定义函数名称,直接传入lambda匿名函数即可。lambda匿名函数通常和其他函数搭配使用。
比如可以直接使用如下的lambda表达式计算当x=3时,y=x*3+5的函数值。
In[1]:(lambdax:x*3+5)(3) Out[1]:14
map
map函数将一个函数和序列/迭代器(可以传入多个)作为参数,应用函数到序列中的每个元素,返回一个迭代器。
In[4]:a=list(range(5)) In[5]:b=list(range(2,7)) #结合lambda匿名函数,对a列表中的每个元素,计算x*3+5的函数值 In[6]:list(map(lambdax:x*3+5,a)) Out[6]:[5,8,11,14,17] In[9]:defadd(x,y): ...:returnx+y #传入多个序列,a、b两个序列中的对应元素依次传入函数add中进行计算 #Note:a、b两个序列的长度可以不相等 In[10]:list(map(add,a,b)) Out[10]:[2,4,6,8,10]
filter
filter函数(filter(func,seq))借助一个函数来测试序列/迭代器中每个元素的真假,返回一个过滤后的迭代器。
In[18]:a=list(range(5)) In[19]:defisodd(number): ...:ifnumber%2==0: ...:returnFalse ...:returnTrue ...: In[20]:filter(isodd,a) Out[20]:#过滤掉所有偶数 In[21]:list(filter(isodd,a)) Out[21]:[1,3]
reduce
reduce函数传入一个函数和序列/迭代器,它将滚动计算序列中元素,返回单个结果。例如要计算一个列表所有元素的和。
In[23]:fromfunctoolsimportreduce In[24]:a=list(range(5)) In[25]:sum=reduce((lambdax,y:x+y),a) In[26]:sum Out[26]:10
sorted
sorted(iter,key,reverse=False),高级排序函数,可以根据key实现自定义排序。reverse=False表示默认排序结果升序。
#比如按照a中每个字符串最后的数字大小,降序排序 In[30]:a Out[30]:['fasad_2','fadfc_4','7hdc_0','ncsl_1','fai_3'] In[32]:sorted(a,key=lambdax:int(x[x.rindex('_')+1:]),reverse=True) Out[32]:['fadfc_4','fai_3','fasad_2','ncsl_1','7hdc_0']
总结
以上所述是小编给大家介绍的Python中常用的高阶函数实例详解,希望对大家有所帮助,也非常感谢大家对毛票票网站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。