前言
高阶函数指的是能接收函数作为参数的函数或类;python中有一些内置的高阶函数,在某些场合使用可以提高代码的效率.
lambda
当在使用一些函数的时候,我们不需要显式定义函数名称,直接传入lambda匿名函数即可。lambda匿名函数通常和其他函数搭配使用。
比如可以直接使用如下的lambda表达式计算当x=3时,y = x * 3 + 5的函数值。
In [1]: (lambda x: 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(lambda x: x * 3 + 5, a)) Out[6]: [5, 8, 11, 14, 17] In [9]: def add(x, y): ...: return x+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]: def isodd(number): ...: if number % 2 == 0: ...: return False ...: return True ...: In [20]: filter(isodd, a) Out[20]: <filter at 0x1a6dc460748> # 过滤掉所有偶数 In [21]: list(filter(isodd, a)) Out[21]: [1, 3]
reduce
reduce函数传入一个函数和序列/迭代器,它将滚动计算序列中元素,返回单个结果。例如要计算一个列表所有元素的和。
In [23]: from functools import reduce In [24]: a = list(range(5)) In [25]: sum = reduce((lambda x, 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=lambda x: int(x[x.rindex('_') + 1:]), reverse=True) Out[32]: ['fadfc_4', 'fai_3', 'fasad_2', 'ncsl_1', '7hdc_0']
总结
以上所述是小编给大家介绍的Python中常用的高阶函数实例详解,希望对大家有所帮助,也非常感谢大家对网站的支持!
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“Python中常用的高阶函数实例详解”评论...
更新日志
2024年11月08日
2024年11月08日
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]