返回顶部
首页 > 资讯 > 后端开发 > Python >Python基础——4高阶函数
  • 150
分享到

Python基础——4高阶函数

高阶函数基础 2023-01-30 22:01:28 150人浏览 泡泡鱼

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

摘要

高阶函数 函数本身可用变量指向,把变量当做函数参数的函数成为高阶函数 map and reduce map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterato

高阶函数

函数本身可用变量指向,把变量当做函数参数的函数成为高阶函数

map and reduce

map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。

举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个list [1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map()实现如下:

>>> def f(x):
...     return x * x
...
>>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> list(r)

[1, 4, 9, 16, 25, 36, 49, 64, 81]

map()传入的第一个参数是f,即函数对象本身。由于结果r是一个Iterator,Iterator是惰性序列,因此通过list()函数让它把整个序列都计算出来并返回一个list。

再看reduce的用法。reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:

reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

比方说对一个序列求和,就可以用reduce实现:

>>> from functools import reduce
>>> def add(x, y):
...     return x + y
...
>>> reduce(add, [1, 3, 5, 7, 9])

25

filter

根据函数的返回结果True or False对list等进行筛选,结果是一个Iterator

例:选出偶素

def odd()
    n = 1
    yield n
    n = n + 1
def chu()
    return lambda x : x%2 > 0  # lambda关键字,匿名函数
def oushu()
    n = odd()
    while True:
    t = next(n)
    output = filter(chu,n)
print(list(output))

sorted

排序函数

 L=[15,-5,6,-89,100]

 sorted(L)

 [-89,-5,6,15,100]

 sorted(L,key=abs)

 [-5,6,15,-89,100]

sorted(L,key=abs, reverse = True)

[100,-89,15,6,-5]

字符串排序是根据ASCLL码大小排序

返回函数

return 返回一个函数值

当把函数计算结果不是立即返回,在调用的时候返回,可用到返回函数。

返回函数里边不要有循环变量

例子:

def count():
    fs = []
    for i in range(1, 4):
        def f():
             return i*i
        fs.append(f)
    return fs

f1, f2, f3 = count()
>>> f1()
9
>>> f2()
9
>>> f3()
9

如果用到循环变量,就把变量当做参数传进去:

def count():
    def f(j):
        def g():
            return j*j
        return g
    fs = []
    for i in range(1, 4):
        fs.append(f(i)) # f(i)立刻被执行,因此i的当前值被传入f()
    return fs

计数器函数:

def createCounter :
    a = 0
    def counter:
        nonlocal a    #nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量。
        a = a + 1
        return a
    return counter

匿名函数

可以当做函数返回,可以用变量指向函数

f = lambda x: x*x
def lambda(x):
   return x*x

装饰器(修饰函数)

修饰函数可以看做是返回函数的一种,目的是在函数的执行前或函数执行后先进行相关的处理操作(函数运行期间动态添加功能的成为装饰器),添加在定义函数的前面,实现装饰作用。

例如:

计算函数的执行时间

import time funtools
def log(text)
def decorator(fnc):
    @functools.wraps(fnc)
        def wrapper(*args,**kw):
           start  = time.time()
            func = fnc(*args,**kw)
            end = time.time()
            print(%s : %s excuted in %s ms %(text,func_name_,(start - end)*1000))
            return func
        return wrapper
    return decorator

偏函数

固定住某些函数的参数,使函数调用更加方便

例子:

import functools
int 2 = functools.partial(int,base = 2)
max 2 = functools.partial(max,10)
max 2(5,6,7) = 10

 

--结束END--

本文标题: Python基础——4高阶函数

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

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

猜你喜欢
  • Python基础——4高阶函数
    高阶函数 函数本身可用变量指向,把变量当做函数参数的函数成为高阶函数 map and reduce map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterato...
    99+
    2023-01-30
    高阶 函数 基础
  • Python基础【高阶函数】
    map(fun,seq) 将seq中的元素依次作为参数传入fun,返回由函数返回值组成的新的列表。 python3:返回一个map对象 python2:返回列表 可以用list将对象转换为列表进行调用 代码: def f...
    99+
    2023-01-31
    高阶 函数 基础
  • Python 高阶函数
    高阶函数:简单来讲,一个函数可以接收另一个函数来作为参数,这样的函数称之为高阶函数 map函数 会根据提供的函数对指定序列做映射,也就是说将函数作用在指定序列 语法为 map(function,interable...) ...
    99+
    2023-01-30
    高阶 函数 Python
  • python高阶函数
    高阶函数定义:1.函数接收的参数是一个函数名;2.函数返回的是一个函数名;只要满足上述条件中的任意一个条件的函数均属于高阶函数 例如:1.函数接收的参数为函数名2.函数返回的结果为函数名3.函数接收的参数为函数名,函数返回的结果为函数名...
    99+
    2023-01-31
    高阶 函数 python
  • python基础知识之函数初阶——命名
    python中的命名空间分三种: 内置的命名空间,在启动解释器的时候自动加载进内存的各种名字所在的空间,比如print,input等不需要定义就可以使用的名字 全局命名空间,就是从上到下所有我们定义的变量名和函数名所在的空间,是在程序从上...
    99+
    2023-01-31
    基础知识 函数 python
  • python 高阶函数:Decorato
    装饰器:原函数基础 ------> 动态添加功能一、不带参数的decorator#decorator封装def log(func):    def wrapper(*args, **kw):        print 'call %s...
    99+
    2023-01-31
    高阶 函数 python
  • Python基础之函数参数与返回值进阶
    参数作用:如果外界希望在函数内部处理数据,就可以将数据作为参数传入函数内部; 返回值作用:如果希望一个函数函数执行完成后,向外界报告函数的执行结果,就可以使用函数的返回值。 函数的返回值 进阶 利用元组返回多个函数值 可以用元组让函数返回...
    99+
    2023-01-31
    进阶 函数 返回值
  • python学习-4 python基础-
    条件语句的原理:     2.举个例子:比大小   #!/usr/bin/env python # -*- coding:utf8 -*- a=input("请输入a:") b=input("请输入b:") if a >...
    99+
    2023-01-31
    基础 python
  • 零基础学Python|Python高阶-使用Python操作数据库
    ​ 作者主页:编程指南针 作者简介:Java、前端、Python开发多年,做过高程,项目经理,架构师 主要内容:Java项目开发、毕业设计开发、面试技术整理、最新技术分享 收藏点赞不迷路 关...
    99+
    2023-09-03
    数据库 python python连接mysql python数据库操作
  • Python函数基础
    目录Python函数1、函数的定义格式2、使用当前文件的函数3、调用及定义函数4、使用其他文件(模块)的函数5、求两数之和Python函数 函数就是把具有独立功能的代码块封装成一个小...
    99+
    2024-04-02
  • python-函数基础
    函数简介 定义:就是具有特定功能的一段代码 优点: 解决代码的重复书写 可以将功能的实现着和使用者分开,提高开发效率 分类: 库函数:print、input、abs等 自定义:用户自己封装的函数 ...
    99+
    2023-01-30
    函数 基础 python
  • Python基础函数
    join()函数的用法   join()函数连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串 语法:'sep'.join(seq) 参数说明sep:分隔符。可以为空seq:要连接的元素序列、字符串、...
    99+
    2023-01-31
    函数 基础 Python
  • Python常见内置高阶函数即高阶函数用法
    目录1.什么是高阶函数?2.高阶函数-map、filter、reduce2.1map函数2.2filter函数2.3reduce函数1.什么是高阶函数?   高阶函数:一个函数可...
    99+
    2024-04-02
  • Python基础:Python函数
    一、函数是python中使用最高的对象。        函数定义的简单规则 :        1、用def定义,接着是函数名和参数和冒号,格式:        2、函数内部代码块需要缩进        3、使用return返回函数值,默认返...
    99+
    2023-01-31
    函数 基础 Python
  • 高阶函数
    一个函数可以接收另一个函数作为参数,这种函数就称之为高阶函数 编写高阶函数,就是让函数的参数能够接收别的函数 函数式编程就是指这种高度抽象的编程范式 高阶函数的特点   变量可以指向函数     函数本身也可以赋值给变量,即:变...
    99+
    2023-01-31
    高阶 函数
  • python基础四:函数
    def sum(a,b): result = a+b print(result) num1 = int(input("num1:")) num2 = int(input("num2:")) sum(num1,num2) a...
    99+
    2023-01-31
    函数 基础 python
  • python基础之函数
    函数: # 什么是函数:一系列python语句的组合,可以在程序中运行一次或者多次 # 一般是完成具体的独立的功能 # 为什么要使用函数 # 代码的复用最大化以及最小化冗余代...
    99+
    2024-04-02
  • 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 递归与高阶函数
    在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。一个简单的递归函数(不正式)def calc(n):     print(n)   &...
    99+
    2023-01-30
    递归 高阶 函数
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作