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 相关文章推荐
Pyramid将models.py文件的内容分布到多个文件的方法
Nov 27 Python
Python中分数的相关使用教程
Mar 30 Python
Python中使用Beautiful Soup库的超详细教程
Apr 30 Python
python的staticmethod与classmethod实现实例代码
Feb 11 Python
Python遍历某目录下的所有文件夹与文件路径
Mar 15 Python
python处理multipart/form-data的请求方法
Dec 26 Python
对Python中DataFrame选择某列值为XX的行实例详解
Jan 29 Python
python实现小程序推送页面收录脚本
Apr 20 Python
Python能做什么
Jun 02 Python
Python+OpenCV图像处理——实现轮廓发现
Oct 23 Python
想学画画?python满足你!
Dec 24 Python
如何用python 操作zookeeper
Dec 28 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 友好URL的实现(吐血推荐)
2008/10/04 PHP
php 验证码制作(网树注释思想)
2009/07/20 PHP
php使用Smarty的相关注意事项及访问变量的几种方式
2011/12/08 PHP
PHP统计目录大小的自定义函数分享
2014/11/18 PHP
PHP中使用php://input处理相同name值的表单数据
2015/02/03 PHP
php 三大特点:封装,继承,多态
2017/02/19 PHP
javascript 在网页中的运用(asp.net)
2009/11/23 Javascript
高效率JavaScript编写技巧整理
2013/08/23 Javascript
javascript实现页面内关键词高亮显示代码
2014/04/03 Javascript
javascript 10进制和62进制的相互转换
2014/07/31 Javascript
JS实现关键字搜索时的相关下拉字段效果
2014/08/05 Javascript
jQuery动画效果实现图片无缝连续滚动
2016/01/12 Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
2016/02/25 Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
2016/04/13 Javascript
JavaScript设计模式之单体模式全面解析
2016/09/09 Javascript
利用Node.js对文件进行重命名
2017/03/12 Javascript
webpack 模块热替换原理
2018/04/09 Javascript
Vue实现按钮旋转和移动位置的实例代码
2018/08/09 Javascript
简单了解Vue + ElementUI后台管理模板
2020/04/07 Javascript
JS错误处理与调试操作实例分析
2020/04/13 Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
2020/08/07 Javascript
IDEA配置jQuery, $符号不再显示黄色波浪线的问题
2020/10/09 jQuery
[00:43]拉比克至宝魔导师密钥展示
2018/12/20 DOTA
Python的垃圾回收机制深入分析
2014/07/16 Python
python with statement 进行文件操作指南
2014/08/22 Python
Python开发最牛逼的IDE——pycharm
2018/08/01 Python
python微信撤回监测代码
2019/04/29 Python
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
国际花店:Pickup Flowers
2020/04/10 全球购物
哪些情况下不应该使用索引
2015/07/20 面试题
民政局标准版离婚协议书
2014/12/01 职场文书
工程技术员岗位职责
2015/04/11 职场文书
农村环境卫生倡议书
2015/04/29 职场文书
会议简讯范文
2015/07/20 职场文书
新学期主题班会
2015/08/17 职场文书
详解Js模块化的作用原理和方案
2021/04/29 Javascript