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

 更新时间:2020年02月21日 09:01:59   作者:mhxin  
高阶函数指的是能接收函数作为参数的函数或类,这篇文章主要介绍了Python中常用的高阶函数,通过实例文字解释相结合给大家介绍的非常详细,需要的朋友可以参考下

前言

高阶函数指的是能接收函数作为参数的函数或类;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中的魔法函数和魔法属性用法示例

    这篇文章主要介绍了Python中的魔法函数和魔法属性的相关资料,Python的魔法函数也被称为特殊方法或双下划线方法,是Python中一些特殊命名的函数,它们以双下划线开头和结尾,这些函数定义了对象在特定情况下的行为,需要的朋友可以参考下
    2024-11-11
  • 简单了解python单例模式的几种写法

    简单了解python单例模式的几种写法

    这篇文章主要介绍了简单了解python单例模式的几种写法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Python通过rembg实现图片背景去除功能

    Python通过rembg实现图片背景去除功能

    在图像处理领域,背景移除是一个常见且重要的任务,Python中的rembg库就是一个强大的工具,它基于深度学习技术,能够准确、快速地移除图像背景,本文将结合多个实际案例,详细介绍rembg库的安装、基本用法、高级功能以及在实际项目中的应用,需要的朋友可以参考下
    2024-09-09
  • python面积图之曲线图的填充

    python面积图之曲线图的填充

    这篇文章主要介绍了python面积图之曲线图的填充,文章围绕主题的相关资料展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下,希望对你的学习有所帮助
    2022-06-06
  • python单例设计模式实现解析

    python单例设计模式实现解析

    这篇文章主要介绍了python单例设计模式实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享

    python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享

    这篇文章主要介绍了python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享,一个不太会遇到的问题,需要的朋友可以参考下
    2014-07-07
  • python实现狄克斯特拉算法

    python实现狄克斯特拉算法

    这篇文章主要介绍了python实现狄克斯特拉算法。想了解数据结构和算法朋友可以参考下
    2021-04-04
  • Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例

    Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例

    这篇文章主要介绍了Python基于分析Ajax请求实现抓取今日头条街拍图集功能,涉及Python针对今日头条URL请求与json数据处理相关操作技巧,需要的朋友可以参考下
    2018-07-07
  • Python编程获取终端命令行参数示例

    Python编程获取终端命令行参数示例

    这篇文章主要为大家介绍了Python编程获取终端命令行参数示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • 浅析关于Keras的安装(pycharm)和初步理解

    浅析关于Keras的安装(pycharm)和初步理解

    Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。这篇文章给大家介绍Keras的安装(pycharm)和初步理解,感兴趣的朋友一起看看吧
    2020-10-10

最新评论