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读取注册表中值的方法
Apr 08 Python
python实现的一只从百度开始不断搜索的小爬虫
Aug 13 Python
Python入门篇之字符串
Oct 17 Python
在Python中使用正则表达式的方法
Aug 13 Python
Python中反射和描述器总结
Sep 23 Python
python使用PyQt5的简单方法
Feb 27 Python
django使用haystack调用Elasticsearch实现索引搜索
Jul 24 Python
Python:type、object、class与内置类型实例
Dec 25 Python
Python如何读写二进制数组数据
Aug 01 Python
Python pip使用超时问题解决方案
Aug 03 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
Jan 21 Python
Python字符串对齐方法使用(ljust()、rjust()和center())
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
PHP中SESSION过期设置
2021/03/09 PHP
响应鼠标变换表格背景或者颜色的代码
2009/03/30 Javascript
JQuery 确定css方框模型(盒模型Box Model)
2010/01/22 Javascript
用JS判断IE版本的代码 超管用!
2011/08/09 Javascript
基于jquery的多功能软键盘插件
2012/07/25 Javascript
js日期相关函数总结分享
2013/10/15 Javascript
js对图片base64编码字符串进行解码并输出图像示例
2014/03/17 Javascript
iframe里的页面禁止右键事件的方法
2014/06/10 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
2014/11/23 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
2014/11/28 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
[04:48]DOTA2上海特锦赛小组赛第三日 TOP10精彩集锦
2016/02/28 DOTA
Python中的Classes和Metaclasses详解
2015/04/02 Python
利用numpy实现一、二维数组的拼接简单代码示例
2017/12/15 Python
Python读取Json字典写入Excel表格的方法
2018/01/03 Python
pycharm中成功运行图片的配置教程
2018/10/28 Python
Python openpyxl 遍历所有sheet 查找特定字符串的方法
2018/12/10 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
2019/09/06 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
深入浅析python变量加逗号,的含义
2020/02/22 Python
Pycharm github配置实现过程图解
2020/10/13 Python
HTML5 window/iframe跨域传递消息 API介绍
2013/08/26 HTML / CSS
美国卡车、吉普车和SUV零件网站:4 Wheel Parts
2016/11/24 全球购物
拥有超过850家商店的美国在线派对商店:Party City
2018/10/21 全球购物
美国美食礼品篮网站:Gourmet Gift Baskets
2019/12/15 全球购物
奥地利时尚、美容、玩具和家居之家:Kastner & Öhler
2020/04/26 全球购物
linux面试题参考答案(11)
2012/05/01 面试题
党员的自我评价范文
2014/01/02 职场文书
销售演讲稿范文
2014/01/08 职场文书
教师节宣传方案
2014/05/23 职场文书
2015年员工试用期工作总结
2014/12/12 职场文书
开会通知
2015/04/20 职场文书
离职证明范本
2015/06/12 职场文书
python 实现mysql自动增删分区的方法
2021/04/01 Python
从QQtabBar看css命名规范BEM的详细介绍
2021/08/07 HTML / CSS
Golang 并发下的问题定位及解决方案
2022/03/16 Golang