python高阶函数使用教程示例

 更新时间:2022年06月27日 10:26:08   作者:测试开发技术修炼  
这篇文章主要为大家介绍了python高阶函数使用教程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

一、高阶函数

函数定义

python中,函数名是变量,下方这个method函数名看成变量,指向一个计算的函数!因此函数名其实就是指向函数的变量,故变量可指向函数;

变量可指向函数,且函数的变量可接受变量,那么任意一个函数可接受一个函数作为参数,这种函数就叫高阶函数

函数名可作为返回值、也可作为参数

def method(a,b):
  return a+b
a = method
print(a(1,4))
#输出; 5

(1)函数名作为参数

def fun(a):
  return a*a
def fun1(a,b,c):
  return a(b)+a(c)
print(fun1(fun(),1,5))   # fun()作为参数,传给fun1
#输出:26

(2)函数名作为返回值

def fun(a):
  def fun2(b):
    return a*b
  return fun2()
a = fun(1)    
print(a)     #外部函数返回的是一个函数对象,也就是一个变量,然后作为函数对象传参,获得内部函数的返回值
print(a(3))
# 输出:<function method.<locals>.method2 at 0x02B5E9C0>
6

二、常用的高阶函数

map、filter、reduce

先讲下匿名函数lambda,

语法格式:lambda[形参1,形参2,... :表达式]

表达式执行后,返回冒号后表达式;

x = 1
lambda x:x+3

(1)map(function,iterable)

它第一个要传的元素是函数名或lambda匿名函数表达式,第二个要传的是可迭代对象;

python 2.x 返回列表,python 3.x 返回迭代器

array = [1,4,7]
a = map(lambda x:x+1,array)
print(a)
print(list(a))
输出:<map object at 0x02AB11B0>
[2, 5, 8]       

map()函数的作用就是将可迭代对象里的每个元素进行函数操作,然后将元素操作后所组成的可迭代对象返回

(2)filter(function, iterable)

同样,它第一个要传的元素是函数名或lambda匿名函数表达式,第二个要传的是可迭代对象

array = [1,4,7]
a = filter(lambda x:x+1,array)
print(a)
print(list(a))
输出:<filter object at 0x02AB11B0>
[1,4,7]      
array = [1,4,7]
a = filter(lambda x:x%2==0,array)
print(a)
print(list(a))
输出:<filter object at 0x02AB11B0>
[4]

filter函数,就是将可迭代对象的元素带入函数,返回True的对象,一般用于筛选使用,省略for循环

(3)reduce(function, iterable)

它传的是2个元素,将前2个元素带入函数中,然后将返回值作为一个元素,与第三个元素进行运算,直到结束返回最后结果。

reduce(function, iterable[, initializer]),从左到右对一个序列的项进行累计

reduce() 函数在 python2 中是内置函数,在 python3 中放到了 functools 模块下:

from functools import reduce
array = [1,2,3,4,5]
result = reduce(lambda x,y:x+y,array)
print(result)
#结果:15
1+2 = 3
3+3 = 6
6+4=10
10+5=15

以上就是python高阶函数使用教程示例的详细内容,更多关于python高阶函数的资料请关注脚本之家其它相关文章!

相关文章

  • 程序猿新手学习必备的Python工具整合

    程序猿新手学习必备的Python工具整合

    这篇文章主要介绍了程序猿新手必备的Python工具整合,Python 是一种开源编程语言,用于 Web 编程、数据科学、人工智能和许多科学应用
    2021-09-09
  • Python实现操纵控制windows注册表的方法分析

    Python实现操纵控制windows注册表的方法分析

    这篇文章主要介绍了Python实现操纵控制windows注册表的方法,结合实例形式分析了Python使用_winreg模块以及win32api模块针对Windows注册表操作相关实现技巧,需要的朋友可以参考下
    2019-05-05
  • 使用 Python 实现简单的 switch/case 语句的方法

    使用 Python 实现简单的 switch/case 语句的方法

    这篇文章主要介绍了用 Python 实现简单的 switch/case 语句的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-09-09
  • python 的集合类型详解

    python 的集合类型详解

    这篇文章主要为大家介绍了python的集合类型,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • python3 cookbook解压可迭代对象赋值给多个变量的问题及解决方案

    python3 cookbook解压可迭代对象赋值给多个变量的问题及解决方案

    这篇文章主要介绍了python3 cookbook-解压可迭代对象赋值给多个变量,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-01-01
  • Python collections模块的使用方法

    Python collections模块的使用方法

    这篇文章主要介绍了Python collections模块的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • 代码解析python标准库logging模块

    代码解析python标准库logging模块

    这篇文章主要为大家介绍了代码解析python标准库logging模块,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 使用Python可视化展示排序算法

    使用Python可视化展示排序算法

    这篇文章主要介绍了使用Python可视化展示排序算法,让我们创建一个名为algorithm .py的文件,在这个文件中,我们将用python编写所有的排序算法,需要的朋友可以参考下
    2024-11-11
  • Python通过30秒就能学会的漂亮短程序代码(过程全解)

    Python通过30秒就能学会的漂亮短程序代码(过程全解)

    这篇文章主要介绍了Python之30秒就能学会的漂亮短程序代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • python版大富翁源代码分享

    python版大富翁源代码分享

    这篇文章主要为大家详细介绍了python版大富翁源代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11

最新评论