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实现爬虫统计学校BBS男女比例之多线程爬虫(二)
Dec 31 Python
Python爬虫利用cookie实现模拟登陆实例详解
Jan 12 Python
Python实现简易端口扫描器代码实例
Mar 15 Python
Python爬虫工程师面试问题总结
Mar 22 Python
django组合搜索实现过程详解(附代码)
Aug 06 Python
基于TensorFlow常量、序列以及随机值生成实例
Jan 04 Python
python通过matplotlib生成复合饼图
Feb 06 Python
利用django model save方法对未更改的字段依然进行了保存
Mar 28 Python
python数据类型强制转换实例详解
Jun 22 Python
利用keras使用神经网络预测销量操作
Jul 07 Python
解决python 执行shell命令无法获取返回值的问题
Dec 05 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
Feb 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
php简单的留言板与回复功能具体实现
2014/02/19 PHP
PHP7新增运算符用法实例分析
2016/09/26 PHP
PHP 7.0新增加的特性介绍
2017/06/08 PHP
php实现用户注册密码的crypt加密
2017/06/08 PHP
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
2018/05/12 PHP
Laravel 前端资源配置教程
2019/10/18 PHP
IE无法设置短域名下Cookie
2010/09/23 Javascript
javascript数字时钟示例分享
2014/04/23 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
AngularJS + Node.js + MongoDB开发的基于高德地图位置的通讯录
2015/01/02 Javascript
Nodejs中使用phantom将html转为pdf或图片格式的方法
2017/09/18 NodeJs
vue自定义指令directive实例详解
2018/01/17 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
vue项目搭建以及全家桶的使用详细教程(小结)
2018/12/19 Javascript
微信小程序可滑动周日历组件使用详解
2019/10/21 Javascript
vue实现微信浏览器左上角返回按钮拦截功能
2020/01/18 Javascript
python判断端口是否打开的实现代码
2013/02/10 Python
pymongo为mongodb数据库添加索引的方法
2015/05/11 Python
详解Python中find()方法的使用
2015/05/18 Python
Python计算三维矢量幅度的方法
2015/06/15 Python
Python set常用操作函数集锦
2017/11/15 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
2018/07/16 Python
对django layer弹窗组件的使用详解
2019/08/31 Python
django在保存图像的同时压缩图像示例代码详解
2020/02/11 Python
python调用百度API实现人脸识别
2020/11/17 Python
加州风格的游泳和沙滩装品牌:Cupshe
2019/06/10 全球购物
历史学专业推荐信
2013/11/06 职场文书
地震捐款倡议书
2014/08/29 职场文书
门市房租房协议书
2014/12/04 职场文书
应收账款管理制度
2015/08/06 职场文书
详解MySQL集群搭建
2021/05/26 MySQL
Qt自定义Plot实现曲线绘制的详细过程
2021/11/02 Python
Apache Linkis 中间件架构及快速安装步骤
2022/03/16 Servers
Python函数对象与闭包函数
2022/04/13 Python
Python软件包安装的三种常见方法
2022/07/07 Python