python中abs&map&reduce简介


Posted in Python onFebruary 20, 2018

abs函数

可以把函数本身赋值给变量
>>> f = abs
变量可以指向函数
>>> f = abs
>>> f(-10)
10
abs函数实际上是定义在import builtins模块中的,所以要让修改abs变量的指向在其它模块也生效,要用import builtins; builtins.abs = 10

传入函数
一个函数接收另一个函数作为参数,这种函数就称之为高阶函数。

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

当我们调用add(-5, 6, abs)时,参数x,y和f分别接收-5,6和abs,根据函数定义,我们可以推导计算过程为:

x = -5
y = 6
f = abs
f(x) + f(y) ==> abs(-5) + abs(6) ==> 11

map

map()函数接收两个参数,一个是函数,一个是Iterable,
map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回

>>> def f(x):
... return x * x
...
>>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> list(r)
[1, 4, 9, 16, 25, 36, 49, 64, 81]

map()传入的第一个参数是f,即函数对象本身
通过list()函数让它把整个序列都计算出来并返回一个list
把这个list所有数字转为字符串:

>>> list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
['1', '2', '3', '4', '5', '6', '7', '8', '9']

reduce

reduce把一个函数作用在一个序列[x1, x2, x3, ...]上。
这个函数必须接收两个参数,
reduce把结果继续和序列的下一个元素做累积计算,其效果就是:

reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

把序列[1, 3, 5, 7, 9]变换成整数13579,reduce就可以派上用场:

>>> from functools import reduce
>>> def fn(x, y):
... return x * 10 + y
...
>>> reduce(fn, [1, 3, 5, 7, 9])
13579
Python 相关文章推荐
python自定义解析简单xml格式文件的方法
May 11 Python
Python 字符串大小写转换的简单实例
Jan 21 Python
python中subprocess批量执行linux命令
Apr 27 Python
python通过微信发送邮件实现电脑关机
Jun 20 Python
Python turtle绘画象棋棋盘
Aug 21 Python
利用Python产生加密表和解密表的实现方法
Oct 15 Python
Python socket实现的文件下载器功能示例
Nov 15 Python
Python IDLE或shell中切换路径的操作
Mar 09 Python
通过代码实例了解Python异常本质
Sep 16 Python
地图可视化神器kepler.gl python接口的使用方法
Dec 22 Python
Python 使用dict实现switch的操作
Apr 07 Python
Python os和os.path模块详情
Apr 02 Python
Python中常见的异常总结
Feb 20 #Python
Python中单例模式总结
Feb 20 #Python
ubuntu安装mysql pycharm sublime
Feb 20 #Python
python中(str,list,tuple)基础知识汇总
Feb 20 #Python
Python 反转字符串(reverse)的方法小结
Feb 20 #Python
python如何实现int函数的方法示例
Feb 19 #Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
Feb 18 #Python
You might like
PHP5.5在windows安装使用memcached服务端的方法
2014/04/16 PHP
js中的referrer返回上一页使用介绍
2013/09/26 Javascript
JavaScript通过元素的ID和name设置样式
2014/07/08 Javascript
jquery实现相册一下滑动两次的方法
2015/02/09 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
2015/05/12 Javascript
javascript动态创建表格及添加数据实例详解
2015/05/13 Javascript
详解JavaScript的流程控制语句
2015/11/30 Javascript
js return返回多个值,通过对象的属性访问方法
2017/02/21 Javascript
vue2.0的contextmenu右键弹出菜单的实例代码
2017/07/24 Javascript
Vue.js通用应用框架-Nuxt.js的上手教程
2017/12/25 Javascript
JavaScript获取用户所在城市及地理位置
2018/04/21 Javascript
配置eslint规范项目代码风格
2019/03/11 Javascript
使用Python获取Linux系统的各种信息
2014/07/10 Python
利用python求解物理学中的双弹簧质能系统详解
2017/09/29 Python
画pytorch模型图,以及参数计算的方法
2019/08/17 Python
在Pytorch中计算自己模型的FLOPs方式
2019/12/30 Python
keras打印loss对权重的导数方式
2020/06/10 Python
浅谈Html5移动端ios/Android兼容性总结
2018/06/01 HTML / CSS
比利时买床:Beter Bed
2017/12/06 全球购物
精选干货:Java精选笔试题附答案
2014/01/18 面试题
两则小学生的自我评价分享
2013/11/14 职场文书
卫校护理专业毕业生求职信
2013/11/26 职场文书
幼儿园保育员辞职信
2014/01/12 职场文书
计算机专业职业生涯规划范文
2014/01/19 职场文书
餐饮总经理岗位职责
2014/03/07 职场文书
家长对学生的评语
2014/04/18 职场文书
租赁协议书范本
2014/04/22 职场文书
竞聘报告优秀范文
2014/11/06 职场文书
高中生毕业评语
2014/12/30 职场文书
趣味运动会口号
2015/12/24 职场文书
交通事故协议书范本
2016/03/19 职场文书
《没有任何借口》读后感:完美的执行能力
2020/01/07 职场文书
浅谈哪个Python库才最适合做数据可视化
2021/06/28 Python
详细聊聊浏览器是如何看闭包的
2021/11/11 Javascript
SQL Server实现分页方法介绍
2022/03/16 SQL Server
使用vuex-persistedstate本地存储vuex
2022/04/29 Vue.js