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中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
Oct 23 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
Jun 23 Python
pycharm下查看python的变量类型和变量内容的方法
Jun 26 Python
python读取几个G的csv文件方法
Jan 07 Python
对Python之gzip文件读写的方法详解
Feb 08 Python
Python中字符串List按照长度排序
Jul 01 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
Dec 09 Python
pytorch中的weight-initilzation用法
Jun 24 Python
python如何删除列为空的行
Jul 17 Python
Python 如何展开嵌套的序列
Aug 01 Python
基于Python爬取搜狐证券股票过程解析
Nov 18 Python
聊聊pytorch测试的时候为何要加上model.eval()
May 23 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
全国FM电台频率大全 - 10 江苏省
2020/03/11 无线电
UCenter Home二次开发指南
2009/05/28 PHP
PHP 编写大型网站问题集
2010/05/07 PHP
php+mysql实现无限级分类
2015/11/11 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
2016/01/15 PHP
PHP实现根据数组某个键值大小进行排序的方法
2018/03/13 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
2018/04/08 PHP
Yii框架布局文件的动态切换操作示例
2019/11/11 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
js技巧--转义符"\"的妙用
2007/01/09 Javascript
javascript搜索框点击文字消失失焦时文本出现
2014/09/18 Javascript
Windows 系统下设置Nodejs NPM全局路径
2016/04/26 NodeJs
基于Bootstrap实现图片轮播效果
2016/05/22 Javascript
JS产生随机数的用法小结
2016/12/10 Javascript
js for循环倒序输出数组元素的实例
2017/03/01 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
使用vue和datatables进行表格的服务器端分页实例代码
2017/06/07 Javascript
使用Node.js搭建静态资源服务详细教程
2017/08/02 Javascript
详解使用Typescript开发node.js项目(简单的环境配置)
2017/10/09 Javascript
解决JS表单验证只有第一个IF起作用的问题
2018/12/04 Javascript
Vue项目中使用jsonp抓取跨域数据的方法
2019/11/10 Javascript
[14:19]2018年度COSER大赛-完美盛典
2018/12/16 DOTA
python得到电脑的开机时间方法
2018/10/15 Python
对python while循环和双重循环的实例详解
2019/08/23 Python
python 3.8.3 安装配置图文教程
2020/05/21 Python
python使用nibabel和sitk读取保存nii.gz文件实例
2020/07/01 Python
python 录制系统声音的示例
2020/12/21 Python
大学生毕业自我评价范文分享
2013/11/07 职场文书
致垒球运动员加油稿
2014/02/16 职场文书
质量安全标语
2014/06/07 职场文书
篮球赛口号
2014/06/18 职场文书
《爱的教育》读书心得
2014/11/08 职场文书
2014矛盾纠纷排查调处工作总结
2014/12/09 职场文书
土地租赁协议书
2015/01/29 职场文书
工程质检员岗位职责
2015/04/08 职场文书
中秋节主题班会
2015/08/14 职场文书