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中使用PIL库实现图片高斯模糊实例
Feb 08 Python
Python创建对称矩阵的方法示例【基于numpy模块】
Oct 12 Python
Python爬虫使用脚本登录Github并查看信息
Jul 16 Python
Python中xml和json格式相互转换操作示例
Dec 05 Python
Python OOP类中的几种函数或方法总结
Feb 22 Python
Python 通过requests实现腾讯新闻抓取爬虫的方法
Feb 22 Python
浅谈django url请求与数据库连接池的共享问题
Aug 29 Python
python解析yaml文件过程详解
Aug 30 Python
Python使用pdb调试代码的技巧
May 03 Python
python实现人性化显示金额数字实例详解
Sep 25 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
Oct 15 Python
Python内置类型集合set和frozenset的使用详解
Apr 26 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
漂亮但不安全的CTB
2006/10/09 PHP
PHP新手上路(二)
2006/10/09 PHP
php利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
PHP自带方法验证邮箱是否存在
2016/02/01 PHP
php中照片旋转 (orientation) 问题的正确处理
2017/02/16 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
javascript offsetX与layerX区别
2010/03/12 Javascript
javascript 节点排序 2
2011/01/31 Javascript
js 实现在离开页面时提醒未保存的信息(减少用户重复操作)
2013/01/16 Javascript
JavaScript省市联动实现代码
2014/02/15 Javascript
js设置function参数默认值(适合没有传参情况)
2014/02/24 Javascript
抛弃Nginx使用nodejs做反向代理服务器
2014/07/17 NodeJs
JavaScript italics方法入门实例(把字符串显示为斜体)
2014/10/17 Javascript
jQuery中height()方法用法实例
2014/12/24 Javascript
jQuery中triggerHandler()方法用法实例
2015/01/19 Javascript
图解js图片轮播效果
2015/12/20 Javascript
js中用cssText设置css样式的简单方法
2016/09/19 Javascript
js+div+css下拉导航菜单完整代码分享
2016/12/28 Javascript
vue操作动画的记录animate.css实例代码
2019/04/26 Javascript
vue 父组件通过$refs获取子组件的值和方法详解
2019/11/07 Javascript
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
python简单实现旋转图片的方法
2015/05/30 Python
Python中with及contextlib的用法详解
2017/06/08 Python
Python中用post、get方式提交数据的方法示例
2017/09/22 Python
对pandas通过索引提取dataframe的行方法详解
2019/02/01 Python
PyTorch预训练的实现
2019/09/18 Python
Python中BeautifuSoup库的用法使用详解
2019/11/15 Python
Anaconda和ipython环境适配的实现
2020/04/22 Python
一款利用html5和css3动画排列人物头像的实例演示
2014/12/05 HTML / CSS
网络安全方面的面试题
2015/11/04 面试题
linux面试题参考答案(5)
2016/11/05 面试题
J2EE中常用的名词进行解释
2015/11/09 面试题
医院护理人员的自我评价分享
2013/10/04 职场文书
大气污染防治方案
2014/05/19 职场文书
毕业设计指导教师评语
2014/12/30 职场文书
三八妇女节慰问信
2015/02/14 职场文书