学习笔记(11月02日)--高阶函数

三周四次课(11月2日)

1.高阶函数

高级函数就是把函数当成参数传递的一种函数:例如:

def add(x, y, f):
    return f(x) + f(y)

print(add(-8, 11, abs))

结果:

19

解释:

1,调用add函数,分别执行abs(-8)和abs(11),分别计算出他们的值

2,最后再做和运算

map()函数

map函数是python内置的一个高阶函数,它接收一个函数f和一个list,并把list的元素依次传递给函数f,然后返回一个函数f处理完所有list元素的列表

例子:

def f2(x):
    return x * x

l = [1, 2, 3, 4, 5, 6]
print(map(f2, l))

结果:

[1, 4, 9, 16, 25, 36]

解释:

1,l是一个list,把此list的元素传入函数f2,求每个元素的平方。

2,把最终所有的计算结果合并成一个新的list,就如新的结果所示。


reduce()函数

reduce()函数也是python内置的一个高阶函数。reduce()函数接收的参数和map()类似,一个函数f,一个list,但行为和map()不同,reduce()传入的函数f必须接收两个参数,第一个调用是把list的前两个元素传递给f,第二次调用时,就是把前面两个list元素的计算结果当成第一个参数,list的第三个元素当成第二个参数,传入f进行操作,以后以此类推,并返回最终结果值。

例子:

def f(x, y):
    return x + y

print(reduce(f, [1, 2, 3, 4, 5], 10))

结果:

25

解释:

1,计算a = f(1,2)的值为3

2,计算b = f(a,3)的值为6

3,计算c = f(b,4)的值为10

4,计算d = f(c,5)的值为15

5,计算f(d,10)的值为25

其实就相当于1+2+3+4+10,最后的10是一个默认值,即最终在执行一次。


2.匿名函数

时间: 2024-10-16 17:28:42

学习笔记(11月02日)--高阶函数的相关文章

Python基础笔记:函数式编程:高阶函数、返回函数、匿名函数、装饰器、偏函数

高阶函数 高阶函数:一个函数可以接收另一个函数作为参数 或 一个函数可以返回一个函数作为返回值,这种函数称之为高阶函数. #函数 add 接收 f 函数作为参数 >>> def add(x,y,f): ... return f(x)+f(y) ... >>> add(-5,6,abs) 11 可以把匿名函数作为返回值返回 #把匿名函数作为返回值返回 def build(x, y): return lambda: x * x + y * y 匿名函数 关键字 lambda

Linux学习笔记4月10日任务

4月10日任务 11.6 MariaDB安装 11.7/11.8/11.9 Apache安装 扩展 apache dso https://yq.aliyun.com/articles/6298 apache apxshttp://man.chinaunix.net/newsoft/ApacheMenual_CN_2.2new/programs/apxs.html apache工作模式 http://www.cnblogs.com/fnng/archive/2012/11/20/2779977.h

Linux学习笔记4月9日任务

11.1 LAMP架构介绍 11.2 MySQL.MariaDB介绍 11.3/11.4/11.5 MySQL安装 ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql运行后提示,需要安装其他包,如下图: 再次运行./scripts/mysql_install_db --user=mysql --datadir=/data/mysql, 复制# cp support-files/my-default.cnf /etc/my.c

Linux学习笔记4月12日任务

11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机 虚拟主机,实现一台服务器运行多个域名,多个网站: 设置两个域名网站abc.com和111.com,并创建网站首页: 测试网站#curl -x 192.168.133.130:80 abc.com abc.com是默认虚拟主机域名,不是定义的域名,就都会访问到此域名: 原文地址:http://blog.51cto.com/12059818/2105593

Linux学习笔记4月13日任务

11.18 Apache用户认证 编辑以下文件 然后,创建用户及密码 -c,create创建文件,-m,md5加密:aming为自定义用户名: 第二次创建新用户,不用-c创建文件,已创建了: 然后,-t,再graceful; 然后,绑定HOSTS, 浏览器测试 状态码为401, -u,指定用户和密码登录:密码错误状态码也会为401: 指定文件admin.php: 11.19/11.20 域名跳转 域名跳转(也叫域名重定向),提升权重:301永久重定向: !表示非,^以某某开头的: 改完配置文件,

Java 学习计划 11月28日-12月1日

File类基本操作 在Linux中,一切皆文件,所以文件操作是基础. Java中提供File类来提供一些对文件的基本操作,面对一个新类,第一件事就是去看API文档 File类的API文档中对于文件的路径进行了说明 Linux或Unix下用'/' windows下用‘\': 在API的最后一行,有一句说明, Instances of the File class are immutable; that is, once created, the abstract pathname represen

Python3 函数式编程(高阶函数)

这一次主要是学习了一下Python3函数式编程思想,介绍了3个代表性高阶函数:map(), reduce(), filter().像 sorted() 其实也是高阶函数,可以接受函数作为参数.这篇学习笔记中编写了大量高阶函数,同时介绍了Python中的闭包,装饰器.这些思想和方法很美妙,我受益匪浅.当然这些都需要进一步运用和学习. 运行环境:Python3.6 + Jupyter notebook .caret, .dropup > .btn > .caret { border-top-col

高阶函数、递归函数、内置函数

这里我们学习的是: 高阶函数 递归函数 内置函数 参数分类: # 这里的参考文章是:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431752945034eb82ac80a3e64b9bb4929b16eeed1eb9000'''函数的参数的分类:必选参数默认参数可变参数关键字参数命名关键字参数 调用的顺序就是,必选参数-默认参数-可变参数-命名关键字参数-关键字参数

JS中几种常见的高阶函数

高阶函数:英文叫Higher-order function.JavaScript的函数其实都指向某个变量.既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数. 一个最简单的高阶函数: function add(x, y, f) { return f(x) + f(y); } //当调用add(-5, 6, Math.abs)时,参数x,y和f分别接收-5,6和函数Math.abs,根据函数定义,可以推导计算过程为: //x = -5;