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实现的二叉树定义与遍历算法实例
Jun 30 Python
Python生成数字图片代码分享
Oct 31 Python
python 实现对文件夹中的图像连续重命名方法
Oct 25 Python
Python依赖包整体迁移方法详解
Aug 15 Python
python OpenCV GrabCut使用实例解析
Nov 11 Python
Pycharm中Python环境配置常见问题解析
Jan 16 Python
在TensorFlow中屏蔽warning的方式
Feb 04 Python
python 使用raw socket进行TCP SYN扫描实例
May 05 Python
Python环境管理virtualenv&amp;virtualenvwrapper的配置详解
Jul 01 Python
解决PyCharm不在run输出运行结果而不是再Console里输出的问题
Sep 21 Python
神经网络训练采用gpu设置的方式
Mar 03 Python
利用Python实时获取steam特惠游戏数据
Jun 25 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
根德YB400的电路分析
2021/03/02 无线电
PHP中使用curl伪造IP的简单方法
2015/08/07 PHP
php ci 获取表单中多个同名input元素值的代码
2016/03/25 PHP
Yii2汉字转拼音类的实例代码
2017/04/18 PHP
11个用于提高排版水平的基于jquery的文字效果插件
2012/09/14 Javascript
jQuery+CSS3实现树叶飘落特效
2015/02/01 Javascript
JS通过ajax动态读取xml文件内容的方法
2015/03/24 Javascript
Node.js实现文件上传
2016/07/05 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
2017/03/31 Javascript
React Native模块之Permissions权限申请的实例相机
2017/09/28 Javascript
nodejs判断文件、文件夹是否存在及删除的方法
2017/11/10 NodeJs
jQuery实现页码跳转式动态数据分页
2017/12/31 jQuery
angular6的table组件开发的实现示例
2018/12/26 Javascript
layui table去掉右侧滑动条的实现方法
2019/09/05 Javascript
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
Python实现数通设备端口使用情况监控实例
2015/07/15 Python
python爬取w3shcool的JQuery课程并且保存到本地
2017/04/06 Python
Django 如何获取前端发送的头文件详解(推荐)
2017/08/15 Python
Python 函数基础知识汇总
2018/03/09 Python
解决Pandas的DataFrame输出截断和省略的问题
2019/02/08 Python
详解用python生成随机数的几种方法
2019/08/04 Python
django框架基于queryset和双下划线的跨表查询操作详解
2019/12/11 Python
python实现在线翻译功能
2020/03/03 Python
PyQt5 界面显示无响应的实现
2020/03/26 Python
Python读取JSON数据操作实例解析
2020/05/18 Python
利用python制作拼图小游戏的全过程
2020/12/04 Python
阿联酋优惠券服务:Living Kool
2019/12/12 全球购物
Ariat官网:美国马靴和服装品牌
2019/12/16 全球购物
娇韵诗香港官网:Clarins香港
2020/08/13 全球购物
大学生联谊活动策划书(光棍节)
2014/10/10 职场文书
健康状况证明模板
2014/10/23 职场文书
道歉的话语大全
2015/05/12 职场文书
初中军训感想
2015/08/07 职场文书
九年级数学教学反思
2016/02/17 职场文书
nginx对http请求处理的各个阶段详析
2021/03/31 Servers
使用python绘制分组对比柱状图
2022/04/21 Python