一个函数可以接收另一个函数作为参数,这样的函数叫做高阶函数。

函数map():

map()函数接收两个参数,一个是函数,一个是Iterable, map把函数作用于序列的每一个元素,并把结果作为Iterator返回。

注意,返回的是生成器Iterator,所以取返回值的时候需要用for,或者next,或者通过list序列化之后才能取出来

举例:

def f(x):
return x * x #定义一个函数f(x),返回值是两个数的乘积 r = map(f, [1, 2, 3, 4, 5, 6]) #通过map函数让f(x)作用于后面序列的每一个元素
print('print(r)', r) #直接打印r,得到的是r变量指向的地址
==》print(r) <map object at 0x02658A30>
print('list(r) = ', list(r)) #把r序列化之后返回一个list输出
==》list(r) =  [1, 4, 9, 16, 25, 36] #通过for循环输出
for n in r:
print(n)
==》

1
4
9
16
25
36

#通过next()输出:

while True:
try:
print(next(r))
except StopIteration as e:
print(e.value)
break ==》

1
4
9
16
25
36
None

reduce(f, [])函数:
需要传入两个参数,一个是函数f,这个函数f必须有两个参数,作用于后面的参数。reduce把计算的结果继续作用于f和序列的下一个元素
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
举例1:
def f(x, y): #定义一个函数,这个函数必须有两个参数
return x * y #返回值是两个数的乘积 #把函数f作为参数传入reduce函数
print(reduce(f, [1, 2, 3, 4]))
==》24 解析:
第一步:f(1, 2),输出的结果是1 * 2 = 2
第二步:第一步输出的结果被当做第二步的第一个参数传入计算 f(2, 3),输出的结果是 2 * 3 = 6
第三步:同理第二步 f(6, 4) => 6 * 4 = 24
举例2:
def MySum(x, y):
return x + y print(reduce(MySum, [1, 2, 3, 4, 5]))
==》1+2+3+4+5=15
												

python 高阶函数学习, map、reduce的更多相关文章

  1. [py][lc]python高阶函数(匿名/map/reduce/sorted)

    匿名函数 - 传入列表 f = lambda x: x[2] print(f([1, 2, 3])) # x = [1,2,3] map使用 传入函数体 def f(x): return x*x r ...

  2. python 函数式编程:高阶函数,map/reduce

    python 函数式编程:高阶函数,map/reduce #函数式编程 #函数式编程一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数 #(一)高阶函数 f=abs f print ...

  3. 高阶函数 filter map reduce

    const app=new Vue({ el:'#app', data:{ books:[{ id:1, name:"算法导论", data: '2006-1', price:39 ...

  4. Python学习笔记系列——高阶函数(map/reduce)

    一.map #变量可以指向函数,函数的参数能接受变量,那么一个函数就可以接受另一个函数作为参数,这种函数被称之为高阶函数 def add(x,y,f): return f(x)+f(y) print( ...

  5. Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)...啊啊啊

    函数式编程 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计 ...

  6. Python高阶函数(Map、Reduce、Filter)

    Map函数 map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回. 举例说明 比如我们有一个函数f(x)=x2,要把这个函数作用 ...

  7. (转)Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)

    原文:https://www.cnblogs.com/chenwolong/p/reduce.html 函数式编程 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数 ...

  8. Python高阶函数(Map、Reduce、Filter)和lambda函数一起使用 ,三剑客

    Map函数 map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回. 举例说明 比如我们有一个函数f(x)=x2,要把这个函数作用 ...

  9. python高阶函数,map,filter,reduce,ord,以及lambda表达式

    为什么我突然扯出这么几个函数,是因为我今天在看流畅的python这本书的时候,里面有一部分内容看的有点懵逼. >>> symbols = '$¢£¥€¤' >>> ...

随机推荐

  1. java基础学习之单例设计模式学习

    最近狂补java基础的我重新学习了下单例,下面直接贴出代码,以作备忘 package com.darling.single; /** * 单例模式 * 单例即在内存中只存在该类的一个实例,要想实现这个 ...

  2. CentOS部署PHP环境

    1.安装apache yum -y install httpd httpd-devel 2.启动apache systemctl start httpd.service 检查apache状态 syst ...

  3. 初玩OpenWRT之编译TP-Link WR841N V8固件

    0x00 安装依赖 安装git以下载OpenWrt源码.安装编译工具以进行交叉编译: sudo apt-get update sudo apt-get install build-essential ...

  4. IDEA_debug窗口问题,debugger窗口消失,窗口漂浮等

  5. FZU 2273 Triangles 第八届福建省赛 (三角形面积交 有重边算相交)

    Problem Description This is a simple problem. Given two triangles A and B, you should determine they ...

  6. 自动化测试-21.RobotFrameWork配置安装

    更新pip python -m pip install --upgrade pip 1安装robotframework --pip install robotframework 2. 安装支持框架的运 ...

  7. pyx文件 生成pyd 文件用于 cython调用

    转于:https://www.2cto.com/kf/201405/304168.html 1. 初衷 最近学用python,python不愧是为程序员考虑的编程语言,写起来很快很方便,大大节省开发效 ...

  8. python 基础5 初级函数

    函数最重要的目的是方便我们重复使用相同的一段程序.将一些操作隶属于一个函数,以后你想实现相同的操作的时候,只用调用函数名就可以,而不需要重复敲所有的语句. def my_len(): def 关键字 ...

  9. spacemacs conf

    > da100 src $ cat ~/.spacemacs (defun dotspacemacs/layers () (setq-default dotspacemacs-distribut ...

  10. HttpClient官方sample代码的深入分析(连接池)

    前言   之前一直使用apache的httpclient(4.5.x), 进行http的交互处理. 而httpclient实例则使用了http连接池, 而一旦涉及到连接池, 那会不会在使用上有些隐藏很 ...