Python中常用的高阶函数实例详解


Posted in Python onFebruary 21, 2020

前言

高阶函数指的是能接收函数作为参数的函数或类;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中常用的高阶函数实例详解,希望对大家有所帮助,也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python  unittest单元测试框架的使用
Sep 08 Python
Python读取系统文件夹内所有文件并统计数量的方法
Oct 23 Python
Python面向对象程序设计之私有属性及私有方法示例
Apr 08 Python
Django中使用极验Geetest滑动验证码过程解析
Jul 31 Python
python程序中的线程操作 concurrent模块使用详解
Sep 23 Python
使用python实现希尔、计数、基数基础排序的代码
Dec 25 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
Feb 07 Python
python统计文章中单词出现次数实例
Feb 27 Python
python3 logging日志封装实例
Apr 08 Python
Python发送邮件实现基础解析
Aug 14 Python
用python批量移动文件
Jan 14 Python
python 爬取华为应用市场评论
May 29 Python
解决springboot yml配置 logging.level 报错问题
Feb 21 #Python
python实现word文档批量转成自定义格式的excel文档的思路及实例代码
Feb 21 #Python
pytorch:model.train和model.eval用法及区别详解
Feb 20 #Python
浅谈PyTorch的可重复性问题(如何使实验结果可复现)
Feb 20 #Python
pytorch 模型的train模式与eval模式实例
Feb 20 #Python
pytorch dataloader 取batch_size时候出现bug的解决方式
Feb 20 #Python
pytorch 使用加载训练好的模型做inference
Feb 20 #Python
You might like
转PHP手册及PHP编程标准
2006/12/17 PHP
php mysql like 实现多关键词搜索的方法
2016/10/29 PHP
Javascript !!的作用
2008/12/04 Javascript
超级酷和最实用的jQuery实例收集(20个)
2010/04/21 Javascript
jQuery性能优化28条建议你值得借鉴
2013/02/16 Javascript
datagrid框架的删除添加与修改
2013/04/08 Javascript
jQuery之字体大小的设置方法
2014/02/27 Javascript
jQuery实现跨域iframe接口方法调用
2015/03/14 Javascript
jquery实现带缩略图的可定制高度画廊效果(5种)
2015/08/28 Javascript
基于JavaScript实现前端文件的断点续传
2016/10/17 Javascript
微信小程序开发之相册选择和拍照详解及实例代码
2017/02/22 Javascript
借助node实战JSONP跨域实例
2017/03/30 Javascript
jsTree事件和交互以及插件plugins详解
2017/08/29 Javascript
详解如何在angular2中获取节点
2017/11/23 Javascript
jquery实现左右轮播切换效果
2018/01/01 jQuery
ajax请求data遇到的问题分析
2018/01/18 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
漂亮的Django Markdown富文本app插件的实现
2019/01/02 Python
python从内存地址上加载python对象过程详解
2020/01/08 Python
如何解决安装python3.6.1失败
2020/07/01 Python
Pycharm安装python库的方法
2020/11/24 Python
python3 kubernetes api的使用示例
2021/01/12 Python
如何避免常见的6种HTML5错误用法
2017/11/06 HTML / CSS
canvas进阶之如何画出平滑的曲线
2018/10/15 HTML / CSS
Paul’s Boutique官网:英国时尚手袋品牌
2018/03/31 全球购物
印度服装购物网站:Limeroad
2018/09/26 全球购物
捷克街头、运动和滑板一站式商店:BoardStar.cz
2019/10/06 全球购物
Bose英国官方网站:美国知名音响品牌
2020/01/26 全球购物
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
下述程序的作用是计算机数组中的最大元素值及其下标
2012/11/26 面试题
运动会开幕式邀请函
2014/01/22 职场文书
心理健康日活动总结
2014/05/08 职场文书
单位绩效考核方案
2014/05/11 职场文书
应聘会计求职信
2014/06/11 职场文书
社区义诊通知
2015/04/24 职场文书
Javascript使用integrity属性进行安全验证
2021/11/07 Javascript