返回顶部
首页 > 资讯 > 后端开发 > Python >Python常见内置高阶函数即高阶函数用法
  • 362
分享到

Python常见内置高阶函数即高阶函数用法

2024-04-02 19:04:59 362人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录1.什么是高阶函数?2.高阶函数-map、filter、reduce2.1map函数2.2filter函数2.3reduce函数1.什么是高阶函数?   高阶函数:一个函数可

1.什么是高阶函数?

  高阶函数:一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归),满足其一则为高阶函数。

参数为函数:


#参数为函数
def bar():
    print("in the bar..")
def foo(func):
    func()
    print("in the foo..")

foo(bar)

返回值为函数:


#返回值为函数
def bar():
    print("in the bar..")
def foo(func):
    print("in the foo..")
    return bar
res=foo(bar)
res()


以上两个示例中,函数foo()为高阶函数,示例一中函数bar作为foo的参数传入,示例二中函数bar作为foo的返回值。

注:函数名(例如bar 、foo)-->其为该函数的内存地址;函数名+括号(例如 bar()、foo() )-->调用该函数。

2.高阶函数-map、filter、reduce

这三个函数均为高阶函数,其也为python内置的函数。接下来我们看一下这三个函数的用法以及其内部原理是怎样的:

2.1map函数

map函数接收的是两个参数,一个函数,一个序列,其功能是将序列中的值处理再依次返回至列表内。其返回值为一个迭代器对象--》例如: <map object at 0x00000214EEF40BA8>

其用法如图:

 

接下来我们看一下map函数的机制是怎么样的:


num=[1,2,3,4,5]
def square(x):
    return x**2
#map函数模拟
def map_test(func,iter):
    num_1=[]
    for i in iter:
        ret=func(i)
        # print(ret)
        num_1.append(ret)
    return num_1.__iter__() #将列表转为迭代器对象

#map_test函数
print(list(map_test(square,num)))
#map函数
print(list(map(square,num)))

#当然map函数的参数1也可以是匿名函数、参数2也可以是字符串
print(list(map_test(lambda x:x.upper(),"amanda")))
print(list(map(lambda x:x.upper(),"amanda")))


2.2filter函数

filter函数也是接收一个函数和一个序列的高阶函数,其主要功能是过滤。其返回值也是迭代器对象,例如: <filter object at 0x000002042D25EA90>,

其图示如下:

接下来我们看一下filter函数的用法以及其机制是怎么样的:


names=["Alex","amanda","xiaowu"]
#filter函数机制
def filter_test(func,iter):
    names_1=[]
    for i in iter:
        if func(i): #传入的func函数其结果必须为bool值,才有意义
            names_1.append(i)
    return names_1
#filter_test函数
print(filter_test(lambda x:x.islower(),names))
#filter函数
print(list(filter(lambda x:x.islower(),names)))


2.3reduce函数

reduce函数也是一个参数为函数,一个为可迭代对象的高阶函数,其返回值为一个值而不是迭代器对象,故其常用与叠加、叠乘等,

图示例如下:

   

实例如下:


#reduce函数不是内置函数,而是在模块functools中的函数,故需要导入
from functools import reduce

nums=[1,2,3,4,5,6]
#reduce函数的机制
def reduce_test(func,array,ini=None): #ini作为基数
    if ini == None:
        ret =array.pop(0)
    else:
        ret=ini
    for i in array:
        ret=func(ret,i)
    return ret
#reduce_test函数,叠乘
print(reduce_test(lambda x,y:x*y,nums,100))
#reduce函数,叠乘
print(reduce(lambda x,y:x*y,nums,100))

到此这篇关于Python常见内置高阶函数即敢接函数用法的文章就介绍到这了,更多相关Python高阶函数内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python常见内置高阶函数即高阶函数用法

本文链接: https://lsjlt.com/news/159056.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python常见内置高阶函数即高阶函数用法
    目录1.什么是高阶函数?2.高阶函数-map、filter、reduce2.1map函数2.2filter函数2.3reduce函数1.什么是高阶函数?   高阶函数:一个函数可...
    99+
    2024-04-02
  • Python常见内置高阶函数有哪些
    这篇文章给大家分享的是有关Python常见内置高阶函数有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.什么是高阶函数?  高阶函数:一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数...
    99+
    2023-06-21
  • Python 内置高阶函数详细
    目录1、Python的内置高阶函数1.1 map()1.2 reduce() 函数1.3 reduce() 函数1.4 sorted() 函数1、Python的内置高阶函数 1.1 ...
    99+
    2024-04-02
  • Python 高阶函数
    高阶函数:简单来讲,一个函数可以接收另一个函数来作为参数,这样的函数称之为高阶函数 map函数 会根据提供的函数对指定序列做映射,也就是说将函数作用在指定序列 语法为 map(function,interable...) ...
    99+
    2023-01-30
    高阶 函数 Python
  • python高阶函数
    高阶函数定义:1.函数接收的参数是一个函数名;2.函数返回的是一个函数名;只要满足上述条件中的任意一个条件的函数均属于高阶函数 例如:1.函数接收的参数为函数名2.函数返回的结果为函数名3.函数接收的参数为函数名,函数返回的结果为函数名...
    99+
    2023-01-31
    高阶 函数 python
  • python内置常用高阶函数(列出了5个
    原文使用的是python2,现修改为python3,全部都实际输出过,可以运行。 引用自:http://www.cnblogs.com/duyaya/p/8562898.html         https://blog.csdn.net...
    99+
    2023-01-31
    出了 高阶 函数
  • Javascript 常见的高阶函数详情
    目录一、常见的高阶函数1.1、filter1.2、map1.3、reduce高阶函数,英文叫 Higher Order function。一个函数可以接收另外一个函数作为参数,这种函...
    99+
    2024-04-02
  • 高阶函数
    一个函数可以接收另一个函数作为参数,这种函数就称之为高阶函数 编写高阶函数,就是让函数的参数能够接收别的函数 函数式编程就是指这种高度抽象的编程范式 高阶函数的特点   变量可以指向函数     函数本身也可以赋值给变量,即:变...
    99+
    2023-01-31
    高阶 函数
  • python 高阶函数:Decorato
    装饰器:原函数基础 ------> 动态添加功能一、不带参数的decorator#decorator封装def log(func):    def wrapper(*args, **kw):        print 'call %s...
    99+
    2023-01-31
    高阶 函数 python
  • Python_内建高阶函数
    sorted(iterable[,key][,reverse])排序  返回一个新列表,对一个可迭代对象的所有元素排序,排序规则为key定义的函数,reverse表示是否排序翻转  sorted(lst,key=lambda x: 6-x)...
    99+
    2023-01-31
    内建 高阶 函数
  • JavaScript中常见的高阶函数总结
    目录前言map函数reduce函数filter函数sortevery方法find方法findIndex方法foreach方法总结前言 一个函数可以接受另一个函数作为参数,就把这个函数...
    99+
    2024-04-02
  • python3--高阶函数
    # Auther: Aaron Fan'''# 高阶函数:把一个函数名,以实参的形式,传给这个函数的形参,这个函数就称为高阶函数。比如下面的形参c,对应的实参是一个函数名abs。# 函数abs()的功能是取绝对值def add(a,b,c)...
    99+
    2023-01-31
    高阶 函数
  • 常用的python高阶函数有哪些
    常用的Python高阶函数包括:1. map(function, iterable):对可迭代对象中的每个元素应用函数,并返回一个迭...
    99+
    2023-08-09
    python
  • Python基础【高阶函数】
    map(fun,seq) 将seq中的元素依次作为参数传入fun,返回由函数返回值组成的新的列表。 python3:返回一个map对象 python2:返回列表 可以用list将对象转换为列表进行调用 代码: def f...
    99+
    2023-01-31
    高阶 函数 基础
  • python高阶函数使用的方法
    今天小编给大家分享一下python高阶函数使用的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、高阶函数函数定义pyt...
    99+
    2023-07-02
  • python之高阶函数和匿名函数
    map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。 1 def func(x): 2 return x*x 3 4 r = ma...
    99+
    2023-01-30
    函数 高阶 python
  • python高阶函数有哪些
    python中的高阶函数有:1.map()函数;2.reduce()函数;3.filter()函数;python中的高阶函数有以下几种map()函数map()函数是python中一个内置的高阶函数,它可以接收一个函数f和一个list,并通过...
    99+
    2024-04-02
  • 什么是Python高阶函数
    这篇文章主要介绍“什么是Python高阶函数”,在日常操作中,相信很多人在什么是Python高阶函数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是Python高阶函数”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-15
  • Python基础——4高阶函数
    高阶函数 函数本身可用变量指向,把变量当做函数参数的函数成为高阶函数 map and reduce map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterato...
    99+
    2023-01-30
    高阶 函数 基础
  • python 递归与高阶函数
    在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。一个简单的递归函数(不正式)def calc(n):     print(n)   &...
    99+
    2023-01-30
    递归 高阶 函数
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作