一、高阶函数

1.定义:把函数作为参数使用的函数叫做高阶函数

(1)变量可以设置为赋值

a=100

b=a

(2)函数名称就是一个变量

def FunA():

  print("FunA()")

FunA()

FunB = FunA

FunB()

注意:i.函数名称是变量。ii.FunA和FunB只是名称不一样而已

iii.既然函数名称是变量,则应该可以被当做参数传入另一个函数中去。

2.高阶函数举例


#funA是一个普通函数,返回一个传入数字的100倍数字

def funA(n):

    return n * 100

#在写一个函数,把传入参数乘以300倍,利用高阶函数

def funB(n ):

    return funA(n) * 3

print(funB(9))

我们再写一个函数,对比一下谁的调用更好

def funA(n):

    return n * 100

def funC(n,f):

    #假定函数是把n扩大三百倍00

    retrun f(n) * 3

print(funC(9,funA))

很显然下面的调用是更好的:

(1)减少了函数之间的耦合性,我们利用变量来达到传参的目的

(2)下面的函数扩展性更好,例如:我想要扩大500倍呢,再建立一个函数即可,而不用区修改原有的函数。

3.系统的高阶函数

(1)原意就是映射,即把集合或者列表的元素,每一个元素都按照一定规则实行操作,生成一个新的列表或者集合。

(2)map函数是系统提供的具有映射功能的函数,返回值是一个迭代对象

l1 = [i for i in range(10)]

print(l1)

l2 = []

for i in l1:

    l2.append(i*10)

print(l2)

#利用map来实现

def mulTen(n):

    return n*10

l3 = map(mulTen,l1)

print(type(l3))

print(l3)

print(list(l3))

l4 = [i for i in l3]

print(l4)

前两行不解释,第三行这个map类,第四行有历史原因:python2是指在列表上操作则返回列表,但python3改了,在列表操作返回不是类,至于是什么意思,我也不清楚。第五行我们列表化打印出来了。第六行,遗留问题为啥是空列表?

二、源码:

d19_2_higher_order_fuction

地址:https://github.com/ruigege66/Python_learning/blob/master/d19_2_higher_order_fuction​

2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,后台回复”礼包“,获取大数据学习资料。

Python连载15-高阶函数&map映射的更多相关文章

  1. Python 函数式编程 & Python中的高阶函数map reduce filter 和sorted

    1. 函数式编程 1)概念 函数式编程是一种编程模型,他将计算机运算看做是数学中函数的计算,并且避免了状态以及变量的概念.wiki 我们知道,对象是面向对象的第一型,那么函数式编程也是一样,函数是函数 ...

  2. python学习笔记——高阶函数map()

    满足以下两点中任意一点,即为高阶函数: 1.函数接收一个或多个函数作为参数 2.函数返回一个函数 1 描述 用函数和可迭代对象中每一个元素作为参数,计算出新的迭代对象 map() 会根据提供的函数对指 ...

  3. Python内置高阶函数map()

    map()函数map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回. 例如,对于lis ...

  4. Python高阶函数map、reduce、filter、sorted的应用

    #-*- coding:utf-8 -*- from selenium import webdriver from selenium.webdriver.support.wait import Web ...

  5. 匿名函数python内置高阶函数以及递归

    匿名函数 python定义一个函数通常使用def关键词,后面跟函数名,然后是注释.代码块等. def func(): '''注释''' print('from func') 这样就在全局命名空间定义了 ...

  6. python--函数式编程 (高阶函数(map , reduce ,filter,sorted),匿名函数(lambda))

    1.1函数式编程 面向过程编程:我们通过把大段代码拆成函数,通过一层一层的函数,可以把复杂的任务分解成简单的任务,这种一步一步的分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. ...

  7. Python入门篇-高阶函数

    Python入门篇-高阶函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.高级函数  1>.First Class Object 函数在Python中是一等公民 函数也 ...

  8. Python中的高阶函数与匿名函数

    Python中的高阶函数与匿名函数 高阶函数 高阶函数就是把函数当做参数传递的一种函数.其与C#中的委托有点相似,个人认为. def add(x,y,f): return f( x)+ f( y) p ...

  9. Python基础——4高阶函数

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

  10. 辅助函数和高阶函数 map、filter、reduce

    辅助函数和高阶函数 map.filter.reduce: 一.辅助函数:(1-1)响应式函数 (数组更新检测):    push()    pop()    shift()    unshift()  ...

随机推荐

  1. 一个2013届毕业生(踏上IT行业)的迷茫(5)

    很快就到了该找工作的时间了,听说这一年是历史上找工作的人对多的一年,我也不知道是怎么统计的,可信不可信.跑了大概快一个月了,终于有offer了,就这样在这里实习了3个月,一直工作到现在. 回忆了整个学 ...

  2. Delphi 的内存操作函数(1): 给字符指针分配内存( 给字符指针(PChar、PWideChar、PAnsiChar)分配内存最佳的选择是StrAlloc。分配内存的时候会对字符串进行初始化)

    马上能想到的函数有: GetMem AllocMem ReallocMem FreeMem GetMemory ReallocMemory FreeMemory New Dispose NewStr ...

  3. Logical partitioning and virtualization in a heterogeneous architecture

    A method, apparatus, and computer usable program code for logical partitioning and virtualization in ...

  4. IT 达人

    1. 手机与电脑多屏互动 [教程]华为多屏互动功能与PC win7的连接 要求手机和电脑必须在同一局域网内,且手机必须支持多屏互动功能. 操作步骤如下: PC 端: services.msc,启动下面 ...

  5. [Songqw.Net 基础]WPF实现简单的插件化开发

    原文:[Songqw.Net 基础]WPF实现简单的插件化开发 版权声明:本文为博主原创文章,未经博主允许可以随意转载 https://blog.csdn.net/songqingwei1988/ar ...

  6. SharePoint Iframe 一个错误此内容不能显示在一帧<继续>

    在之前的SharePoint网站iframe引用中,我们遇到过以下的问题,就是其他系统或者不通环境的SharePoint网站,引用SharePoint页面会报错"此内容不能显示在一个框架中& ...

  7. 关于fastjson用法

    fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发. public static final String toJSONString(Obje ...

  8. RHEL 6和RHEL 7(CentOS 6和CentOS 7)恢复ROOT密码

    RedHat 6恢复Root密码: 1.启动RedHat 6的时候在这个界面按任意键 2.出现如下界面,按 e 3.出现如下界面,选择第二个--kernel,然后再按 e 4.出现如下界面,输入 空格 ...

  9. 数据源Source 目标Target

    数据源Source-目标Target 数据源实现INotifyPropertyChanged接口,实现“通知”目标实现依赖属性 举例 后台的数据源,实现INotifyPropertyChanged接口 ...

  10. 在 Excel 中如何使用宏示例删除列表中的重复项

    概要:在 Microsoft Excel 中,可以创建宏来删除列表中的重复项.也可以创建宏来比较两个列表,并删除第二个列表中那些也出现在第一个(主)列表中的项目.如果您想将两个列表合并在一起,或者如果 ...