python学习笔记1 -- 函数式编程之高阶函数 map 和reduce
我用我自己,就是高阶函数,直接表现就是函数可以作为另一个函数的参数,也可以作为返回值
首先一个知识点是 函数的表现形式,印象中的是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的更多相关文章
- python学习笔记1 -- 函数式编程之高阶函数 使用函数作为返回值
使用函数作为返回值,看起来就很高端有木有,前面了解过函数名本身就是一个变量,就比如abs()函数,abs只是变量名,而abs()才是函数调用,那么我们如果把ads这个变量作为返回值返回会怎么样呢,这就 ...
- python学习笔记1 -- 函数式编程之高阶函数 filter
filter 函数用于过滤序列,与map 和reduce函数类似,作为高阶函数,他们也是同样的使用方法,filter(参数1, 参数2),参数1是一个函数,而参数2是一个序列. filter的作用是根 ...
- python学习笔记1 -- 函数式编程之高阶函数 sorted排序
python提供了很强大的内置排序函数,妈妈再也不担心我不会写冒泡排序了呀,sorted函数就是这个排序函数,该函数参数准确的说有四个,sorted(参数1,参数2,参数3,参数4). 参数1 是需要 ...
- Python基础笔记:函数式编程:高阶函数、返回函数、匿名函数
高阶函数 高阶函数:一个函数可以接收另一个函数作为参数 或 一个函数可以返回一个函数作为返回值,这种函数称之为高阶函数. #函数 add 接收 f 函数作为参数 >>> def ad ...
- 小白的Python之路 day3 函数式编程,高阶函数
函数式编程介绍 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的 ...
- Learning Python 012 函数式编程 1 高阶函数
Python 函数式编程 1 高阶函数 高阶函数 Q:什么是高阶函数? A:一个函数接收另一个函数作为参数,这种函数就称之为高阶函数. 简单举个例子: def add(x, y, f): return ...
- python 函数式编程:高阶函数,map/reduce
python 函数式编程:高阶函数,map/reduce #函数式编程 #函数式编程一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数 #(一)高阶函数 f=abs f print ...
- Python学习笔记之函数式编程
python中的高阶函数 高阶函数就是 变量名指向函数,下面代码中的变量abs其实是一个函数,返回数字的绝对值,如abs(-10) 返回 10 def add(x,y,f): return f(x) ...
- Python高阶函数map、reduce、filter、sorted的应用
#-*- coding:utf-8 -*- from selenium import webdriver from selenium.webdriver.support.wait import Web ...
随机推荐
- nginx 注释配置及详解
前言 DMZ(Demilitarized Zone) 非军事区,生产环境 WEB 服务部署的区域,公司的架构为一台nginx 充当 load balance 服务,负载到两台 nginx 上面,反向代 ...
- jquery 获取页面和滚动条的高度
1.获取浏览器显示区域的高度 : $(window).height(); 2.获取浏览器显示区域的宽度 : $(window).width(); 3.获取页面的文档高度 : $(document).h ...
- win10 麦克风无法使用,可能是设置了权限
驱动什么的都正常,平白无故麦克风不好用了,原来是之前自己设置了麦克风权限: 把这个开关打开就可以了. (完)
- 关于位图数据位和系统管理区大小-P6
文章目录 1 背景 2 验证 2.1 环境信息 2.2 创建表空间tbs1 2.3 创建表段并拓展至16个区 2.4 查看3号位图块信息 2.5 拓展16号区 2.6 查看3号位图块信息 1 背景 V ...
- 转载--- 写给Node.js学徒的7个建议
贴士 1: 在开发环境使用nodemon,在生产环境使用pm2 当你第一次开发Node.js应用的时候, 其中一件事情就是一次又一次的运行[file].js 就和揭伤疤一样. 当我第一次开发的node ...
- js 字符串转方法,this域绑定
闲着没事,开发一个列表页面配置的功能,其中涉及到了按钮点击事件,在页面进行编辑,保存到数据库中.写好的js脚本,function是字符串格式,所以要让生成的脚本生效,还要做一些操作. 1.首先保存在数 ...
- [POJ3613] Cow Relays(Floyd+矩阵快速幂)
解题报告 感觉这道题gyz大佬以前好像讲过一道差不多的?然鹅我这个蒟蒻发现矩阵快速幂已经全被我还给老师了...又恶补了一遍,真是恶臭啊. 题意 给定一个T(2 <= T <= 100)条边 ...
- CF796C Bank Hacking 题解
洛谷链接 题目 Although Inzane successfully found his beloved bone, Zane, his owner, has yet to return. To ...
- [JAVA]移位运算(左移<<,右移>>和无符号右移>>>)
一.背景知识 整数在内存中是以二进制的形式存在的,而且存的是该整数的补码.最高位代表符号位,正数为0,负数为1 正数的补码是其二进制本身,负数的补码则是 符号位保持1不变,其他位按位取反再加1,+0和 ...
- web 基础(二) HTML5
web 基础(二) HTML5 一.HTML5 HTML5 是最新的 HTML 标准.是专门为承载丰富的 web 内容而设计的,并且无需额外插件.它拥有新的语义.图形以及多媒体元素.并提供的新元素和新 ...