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 ...
随机推荐
- 关于Spring Boot中的业务层(Service)是否要创建接口的分析
在借助Spring Boot框架开发web项目时,在业务层(Service)这一部分,标准做法是:定义一个接口,然后再一个或多个类去实现.那么疑问来了: 为什么我们要维护两份同构代码,而不直接使用一个 ...
- Sharepoint 编辑WebPart时,WebPart属性为灰色不可用
一般在客户端设置就是灰色的,解决方法就是,要在服务器上进行设置,就可以了.:)
- python数据结构(一)
collections --容器数据类型,collections模块包含了除内置类型list,dict和tuple以外的其他容器数据类型. Counter 作为一个容器可以追踪相同的值增加了多少次 # ...
- Nuxt使用axios跨域问题解决方法
Nuxt 是 Vue 项目服务器端渲染(SSR)解决方案.而在使用时,就会遇到前后端分离情况下的域名或端口不一致导致的跨域问题.本文将介绍如何通过设置代理解决 Nuxt 与 axios 集成的跨域问题 ...
- Redis批量查询模板
场景 在开发的时候经常会遇到批量取缓存的问题,例如查询商品信息 传入一个商品Id列表,查询Redis数据存在则放入返回列表 不存在的数据查找数据库,并放入Redis 上面两步数据整合返回 伪代码为 l ...
- Linux多任务编程之六:编写多进程程序及其代码(转)
来源:CSDN 作者:王文松 转自Linux公社 ------------------------------------------------------------------------- ...
- 基层教师 - CMD命令之net命令与IPC连接
1)建立空连接: net use \\IP\ipc$ "" /user:"" (一定要注意:这一行命令中包含了3个空格) 2)建立非空连接: net use \ ...
- LNMP安装composer install时出现Warning: putenv()
layout: post title: LNMP安装composer install时出现Warning: putenv() has been disabled for security reason ...
- Beautiful Soup 4 方法便捷查询
目录 BS4便捷查询 属性 子节点 父节点 兄弟节点 格式化输出 搜索文档树 修改文档树 BS4便捷查询 准备 : import requests, re from bs4 import Beauti ...
- 记一次开发CefSharp做浏览器时Shopify绑定不上Paypal问题
问题:CefSharp做浏览器时Shopify绑定不上Paypal. shopify绑定Paypal的流程大概是如下图所示 步骤1 步骤2 步骤3 步骤4 出现问题大概是在绑定最后一步,并没有如愿的返 ...