我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python基础——4高阶函数

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python基础——4高阶函数

高阶函数

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

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

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python基础——4高阶函数

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python基础——4高阶函数

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

Python基础【高阶函数】

map(fun,seq)将seq中的元素依次作为参数传入fun,返回由函数返回值组成的新的列表。python3:返回一个map对象python2:返回列表可以用list将对象转换为列表进行调用代码: def fun(a):
2023-01-31

python高阶函数

高阶函数定义:1.函数接收的参数是一个函数名;2.函数返回的是一个函数名;只要满足上述条件中的任意一个条件的函数均属于高阶函数例如:1.函数接收的参数为函数名2.函数返回的结果为函数名3.函数接收的参数为函数名,函数返回的结果为函数名
2023-01-31

Python 高阶函数

高阶函数:简单来讲,一个函数可以接收另一个函数来作为参数,这样的函数称之为高阶函数map函数 会根据提供的函数对指定序列做映射,也就是说将函数作用在指定序列语法为map(function,interable...) 1 #使用map函数来将
2023-01-30

python基础知识之函数初阶——命名

python中的命名空间分三种:内置的命名空间,在启动解释器的时候自动加载进内存的各种名字所在的空间,比如print,input等不需要定义就可以使用的名字全局命名空间,就是从上到下所有我们定义的变量名和函数名所在的空间,是在程序从上到下被
2023-01-31

Python基础之函数参数与返回值进阶

参数作用:如果外界希望在函数内部处理数据,就可以将数据作为参数传入函数内部;返回值作用:如果希望一个函数函数执行完成后,向外界报告函数的执行结果,就可以使用函数的返回值。函数的返回值 进阶利用元组返回多个函数值可以用元组让函数返回多个值;如
2023-01-31

python 高阶函数:Decorato

装饰器:原函数基础 ------> 动态添加功能一、不带参数的decorator#decorator封装def log(func):    def wrapper(*args, **kw):        print 'call %s():
2023-01-31

Python基础函数

join()函数的用法 join()函数连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串语法:'sep'.join(seq)参数说明sep:分隔符。可以为空seq:要连接的元素序列、字符串、元组、字典
2023-01-31

Python基础:Python函数

一、函数是python中使用最高的对象。        函数定义的简单规则 :        1、用def定义,接着是函数名和参数和冒号,格式:        2、函数内部代码块需要缩进        3、使用return返回函数值,默认返
2023-01-31

python学习-4 python基础-

条件语句的原理:  2.举个例子:比大小  #!/usr/bin/env python# -*- coding:utf8 -*-a=input("请输入a:")b=input("请输入b:")if a > b: print("a >
2023-01-31

python-函数基础

函数简介定义:就是具有特定功能的一段代码优点:解决代码的重复书写可以将功能的实现着和使用者分开,提高开发效率分类:库函数:print、input、abs等自定义:用户自己封装的函数函数使用定义函数格式def 函数名([参数列表]):
2023-01-30

python基础四:函数

def sum(a,b): result = a+b print(result)num1 = int(input("num1:"))num2 = int(input("num2:"))sum(num1,num2)a,b为形参,形
2023-01-31

Python高阶函数是什么

Python高阶函数是指可以接受函数作为参数或者返回一个函数的函数。在Python中,函数可以作为一种数据类型传递给其他函数,这样的函数就被称为高阶函数。高阶函数可以用来简化代码,提高代码的复用性和灵活性。常见的高阶函数包括map()、fi
Python高阶函数是什么
2024-03-08

高阶函数

一个函数可以接收另一个函数作为参数,这种函数就称之为高阶函数编写高阶函数,就是让函数的参数能够接收别的函数函数式编程就是指这种高度抽象的编程范式高阶函数的特点  变量可以指向函数    函数本身也可以赋值给变量,即:变量可以指向函数    
2023-01-31

什么是python 高阶函数

本篇文章为大家展示了什么是python 高阶函数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.体验高阶函数在Python中,abs()函数可以完成对数字求绝对值计算。abs(-10) # 10r
2023-06-06

什么是Python高阶函数

这篇文章主要介绍“什么是Python高阶函数”,在日常操作中,相信很多人在什么是Python高阶函数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是Python高阶函数”的疑惑有所帮助!接下来,请跟着小编
2023-06-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录