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

函数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的接口

    其实刚开始听到接口的时候不解其意,为什么要有接口这个东西,加之老师上课我可能没仔细听(或者时间长了忘了?),这次看到了“用接口设计并实现圆,三角形,矩形的面积与周长计算”这个题目的代码,它将接口定义在 ...

  2. java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 解决方法

    1.导入mysql-connector-java-5.1.26-bin.jar包,我试着把maven中自动下载下来的mysql-connector-java-5.1.26.jar包导入,还是没能解决问 ...

  3. ssh 免密登陆

    A 要免密码登录要B 那么需要在A电脑上使用命令 ssh-keygen -t rsa 在~/.ssh/ 目录下生成id_rsa.pub 这个文件,然后将这个文件的内容拷到B电脑de ~/.ssh/au ...

  4. 跳过用例skip

    1.装饰器,放在函数前面,跳过用例 @pytest.mark.skip(reason="no way of currently testing this") import pyte ...

  5. Android:E/Surface: getSlotFromBufferLocked: unknown buffer: 0x7f9d1b41c0

    这个问题是在测试leakCanaryTestDemo时发现的,期初看到有点蒙,这个demo中只使用了一个button和一个textView控件进行测试,按理说是不应该出现这种问题,在 网上查找这个问题 ...

  6. react-navigation实现页面框架(转载)

    初始化一个RN项目 react-native init page_framework page.json { "name": "page_framework", ...

  7. Scrum_Sprint

    1.计划会议过程 经过一天的讨论研究,我们对该项目进行了需求分析,确定了这周所要实现的各个功能 并做好了任务看板,并将项目的各个功能分成一个个任务,进行了初步的分工 2.backlog BACKLOG ...

  8. Vim删除文件到行首或者行尾

    vim用的不是很熟练,只是有时候需要的时候会学习一下 我们知道,vim有三种模式,一种是一般模式,一种是编辑模式,另外一种是命令行模式 在一般模式下,可以进行删除,复制粘贴等操作,在编辑模式下可以编辑 ...

  9. N!的近似值_斯特林公式

    公式: N! ~=  sqrt(2 * PI * n) * ((n / e) ^n) 题目类型不慌都.

  10. [LeetCode&Python] Problem 690. Employee Importance

    You are given a data structure of employee information, which includes the employee's unique id, his ...