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 循环语句之 while,for语句详解
Apr 23 Python
python写入已存在的excel数据实例
May 03 Python
Python简单定义与使用二叉树示例
May 11 Python
django传值给模板, 再用JS接收并进行操作的实例
May 28 Python
Python3多进程 multiprocessing 模块实例详解
Jun 11 Python
python利用pandas将excel文件转换为txt文件的方法
Oct 23 Python
Python中import导入不同目录的模块方法详解
Feb 18 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
Mar 24 Python
Keras SGD 随机梯度下降优化器参数设置方式
Jun 19 Python
基于OpenCV的网络实时视频流传输的实现
Nov 15 Python
python mongo 向数据中的数组类型新增数据操作
Dec 05 Python
Python结合百度语音识别实现实时翻译软件的实现
Jan 18 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 分页分组类
2009/12/10 PHP
PHP之短标签开启设置
2013/06/17 PHP
ThinkPHP中数据操作案例分析
2015/09/27 PHP
PHP如何搭建百度Ueditor富文本编辑器
2018/09/21 PHP
xml分页+ajax请求数据源+dom取结果实例代码
2008/10/31 Javascript
高性能WEB开发 flush让页面分块,逐步呈现 flush让页面分块,逐步呈现
2010/06/19 Javascript
屏蔽相应键盘按钮操作
2014/03/10 Javascript
JavaScript事件委托实例分析
2015/05/26 Javascript
浅谈JavaScript字符串拼接
2015/06/25 Javascript
javascript给span标签赋值的方法
2015/11/26 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
2016/03/28 Javascript
20分钟成功编写bootstrap响应式页面 就这么简单
2016/05/12 Javascript
深入理解Node.js 事件循环和回调函数
2016/11/02 Javascript
JavaScript在form表单中使用button按钮实现submit提交方法
2017/01/23 Javascript
详解VS Code使用之Vue工程配置format代码格式化
2019/03/20 Javascript
微信小程序点击列表跳转到对应详情页过程解析
2019/09/26 Javascript
从零开始在vue-cli4配置自适应vw布局的实现
2020/06/08 Javascript
详解Vue2的diff算法
2021/01/06 Vue.js
[00:56]PWL开团时刻DAY8——追追追追追!
2020/11/09 DOTA
python连接字符串的方法小结
2015/07/13 Python
Python实现基于二叉树存储结构的堆排序算法示例
2017/12/08 Python
将TensorFlow的模型网络导出为单个文件的方法
2018/04/23 Python
Python自定义函数实现求两个数最大公约数、最小公倍数示例
2018/05/21 Python
python3.x 将byte转成字符串的方法
2018/07/17 Python
Python使用googletrans报错的解决方法
2018/09/25 Python
python实现简单五子棋游戏
2019/06/18 Python
python实现人工蜂群算法
2020/09/18 Python
使用AJAX和Django获取数据的方法实例
2020/10/25 Python
小学课外阅读总结
2014/07/09 职场文书
自我介绍演讲稿范文
2014/08/21 职场文书
副检察长四风问题对照检查材料思想汇报
2014/10/07 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
小学母亲节活动总结
2015/02/10 职场文书
男方家长婚礼致辞
2015/07/27 职场文书
2016年政治理论学习心得体会
2016/01/25 职场文书
区域销售大会开幕词
2016/03/04 职场文书