我用我自己,就是高阶函数,直接表现就是函数可以作为另一个函数的参数,也可以作为返回值

首先一个知识点是 函数的表现形式,印象中的是def  fw(参数)这种方式定义一个函数

python有很多的内置函数,比如abs()求绝对值,但是没想到的是,abs只是一个变量,把abs这个变量拿掉之后,才是真正的函数,例如可以用 b = abs, 那么b() 就具有和abs一样的功能了,太神奇了,让我想到一句话: 你可以叫姬无命,我也可以叫姬无命,那把这个代号拿掉之后,我又是谁。哈哈,当abs这个代号拿掉之后,才是abs真正的内容,即函数体的内容。由于函数名只是一个代号的原因,函数名本质是一个变量,那变量就可以作为其他函数的参数来使用,所以函数调用时允许使用一个函数作为变量了。

基于函数可以作为参数的特点,接触了第一个和第二个python内置函数:map()和reduce(),map(参数1,参数二)的作用是,参数1 是一个函数,而参数二是一个序列Iterable,map函数会让参数1的函数依次作用在序列中的每一个值,并返回一个迭代器Iterator返回。要使用这个迭代器可以先用列表生成式list()将其转化为列表。

而reduce的作用与其类似也是传入一个函数和一个序列,reduce(参数1,参数2)的作用是,参数1的函数会作用与参数2的序列,且参数1的函数必须接收连个参数,也就是序列中的前两个参数,然后把结果作为新的参数继续和后面的参数进行计算,效果就是,处理 1 和2 变成n,然后处理n和3 变成 新的n,然后继续处理新的n和4,一直处理到最后一个。最常见的就是累加,

在练习中运用到了几个其他的函数,index()函数负责返回一个字符串的位置,比如 [1,4,6,9].index(4) 则会返回1 ,表示4在的位置是1。

第二个函数是len函数,返回一个序列的长度,

通过练习掌握一个技巧就是,如果要进行字符串转换为数字的操作,可以使用字典

dic = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9},然后通过map()函数去依次将字符串转换为数字,
def qs(le):
dic = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
return dic[le]
s = [1,3,5]
s1=map(qs, s)
同样的,这个方法可以用在其他类似的场景中。

python学习笔记1 -- 函数式编程之高阶函数 map 和reduce的更多相关文章

  1. python学习笔记1 -- 函数式编程之高阶函数 使用函数作为返回值

    使用函数作为返回值,看起来就很高端有木有,前面了解过函数名本身就是一个变量,就比如abs()函数,abs只是变量名,而abs()才是函数调用,那么我们如果把ads这个变量作为返回值返回会怎么样呢,这就 ...

  2. python学习笔记1 -- 函数式编程之高阶函数 filter

    filter 函数用于过滤序列,与map 和reduce函数类似,作为高阶函数,他们也是同样的使用方法,filter(参数1, 参数2),参数1是一个函数,而参数2是一个序列. filter的作用是根 ...

  3. python学习笔记1 -- 函数式编程之高阶函数 sorted排序

    python提供了很强大的内置排序函数,妈妈再也不担心我不会写冒泡排序了呀,sorted函数就是这个排序函数,该函数参数准确的说有四个,sorted(参数1,参数2,参数3,参数4). 参数1 是需要 ...

  4. Python基础笔记:函数式编程:高阶函数、返回函数、匿名函数

    高阶函数 高阶函数:一个函数可以接收另一个函数作为参数 或 一个函数可以返回一个函数作为返回值,这种函数称之为高阶函数. #函数 add 接收 f 函数作为参数 >>> def ad ...

  5. 小白的Python之路 day3 函数式编程,高阶函数

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

  6. Learning Python 012 函数式编程 1 高阶函数

    Python 函数式编程 1 高阶函数 高阶函数 Q:什么是高阶函数? A:一个函数接收另一个函数作为参数,这种函数就称之为高阶函数. 简单举个例子: def add(x, y, f): return ...

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

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

  8. Python学习笔记之函数式编程

    python中的高阶函数 高阶函数就是 变量名指向函数,下面代码中的变量abs其实是一个函数,返回数字的绝对值,如abs(-10) 返回 10 def add(x,y,f): return f(x) ...

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

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

随机推荐

  1. 2020 最新省市区 sql

    一个基于有赞的 area.js 生成的sql area.js 简单的写了一个js 生成了sql语句 sql文件 完整代码

  2. 2020年的六种编程语言排名中,java排第几只有不到1%的人知道

    前言 编程语言是开发的基础.有不同的类型和特征,并且开发人员针对不同的场景选择正确的语言,但是您知道使用哪种语言吗?中国和世界各地有多少开发人员正在使用它?他们的排名是多少?快来看看您知道多少个列表! ...

  3. 资深前端工程师带你认识网页后缀html、htm、shtml、shtm有什么区别?

    每一个网页或者说是web页都有其固定的后缀名,不同的后缀名对应着不同的文件格式和不同的规则.协议.用法,最常见的web页的后缀名是.html和.htm,但这只是web页最基本的两种文件格式,今天我们来 ...

  4. nodejs 获取当前路径的方法

    var path = require("path"); var url = path.resolve('./');

  5. DirectX11 With Windows SDK--32 SSAO(屏幕空间环境光遮蔽)

    前言 由于性能的限制,实时光照模型往往会忽略间接光因素(即场景中其他物体所反弹的光线).但在现实生活中,大部分光照其实是间接光.在第7章里面的光照方程里面引入了环境光项: \[C_a = \mathb ...

  6. Traffic Real Time Query System 圆方树+LCA

    题目描述 City C is really a nightmare of all drivers for its traffic jams. To solve the traffic problem, ...

  7. BUUCTF-Crypyo-No.1

    我我我我我又来惹~~~~* MD5 flag{admin1} 看我回旋踢 凯撒密码 flag{5cd1004d-86a5-46d8-b720-beb5ba0417e1} Url编码 flag{and ...

  8. idea+DevTools热部署

    1.增加devtools依赖 <!-- 热部署DevTools --> <dependency> <groupId>org.springframework.boot ...

  9. day27 作业

    # 学校类 class School: #校区的名字:如"老男孩上海校区" #校区的地址:如"上海虹桥" def __init__(self,s_name,s_ ...

  10. SpringCloud组件的停更和替换说明

    SpringCloud的Hoxton版本,和之前的版本相比,用新的组件替换掉了原来大部分的组件,老的组件现在处于 停更不停用 的状况. 详情见下图(× 的表示之前的组件,现在停更了的:√ 的表示新的替 ...