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中将阿拉伯数字转换成中文的实现代码
May 19 Python
Python根据区号生成手机号码的方法
Jul 08 Python
对pandas的dataframe绘图并保存的实现方法
Aug 05 Python
Python 基础教程之闭包的使用方法
Sep 29 Python
Python使用Turtle模块绘制五星红旗代码示例
Dec 11 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
Jul 09 Python
解决python Markdown模块乱码的问题
Feb 14 Python
python函数局部变量、全局变量、递归知识点总结
Nov 15 Python
python 实现兔子生兔子示例
Nov 21 Python
pytorch程序异常后删除占用的显存操作
Jan 13 Python
Python selenium实现断言3种方法解析
Sep 08 Python
使用Django的JsonResponse返回数据的实现
Jan 15 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
PHP file_get_contents函数读取远程数据超时的解决方法
2015/05/13 PHP
PHP批量生成图片缩略图的方法
2015/06/18 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
yii2.0框架实现上传excel文件后导入到数据库的方法示例
2020/04/13 PHP
JS等比例缩小图片尺寸的实例
2013/02/27 Javascript
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
2013/11/22 Javascript
Thinkphp模板没有解析直接原样输出的解决方法
2014/10/31 Javascript
对JavaScript中this指针的新理解分享
2015/01/31 Javascript
jquery+html5制作超酷的圆盘时钟表
2015/04/14 Javascript
jquery插件uploadify实现带进度条的文件批量上传
2015/12/13 Javascript
CSS或者JS实现鼠标悬停显示另一元素
2016/01/22 Javascript
Web前端新人笔记之jquery入门心得(新手必看)
2016/05/17 Javascript
Angularjs 自定义服务的三种方式(推荐)
2016/08/02 Javascript
Javascript中常见的逻辑题和解决方法
2016/09/17 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
vue.js组件之间传递数据的方法
2017/07/10 Javascript
BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)
2017/07/11 Javascript
微信小程序用户拒绝授权的处理方法详解
2019/09/20 Javascript
vue跳转同一个组件,参数不同,页面接收值只接收一次的解决方法
2019/11/05 Javascript
axios封装与传参示例详解
2020/10/18 Javascript
[01:03:51]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第三场
2018/04/09 DOTA
Python二维码生成库qrcode安装和使用示例
2014/12/16 Python
详解基于django实现的webssh简单例子
2018/07/17 Python
对python实时得到鼠标位置的示例讲解
2018/10/14 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
关于pandas的离散化,面元划分详解
2019/11/22 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
2020/03/24 Python
python 利用matplotlib在3D空间中绘制平面的案例
2021/02/06 Python
什么是Smarty变量操作符?如何使用Smarty变量操作符
2014/07/18 面试题
国税会议欢迎词
2014/01/16 职场文书
加薪通知
2015/04/25 职场文书
中学感恩教育活动总结
2015/05/05 职场文书
辞职信格式范文
2015/05/13 职场文书
毕业论文答辩开场白
2015/05/27 职场文书
金正昆讲礼仪观后感
2015/06/11 职场文书
导游词之山西-五老峰
2019/10/07 职场文书