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 3支持mysqldb的解决方法
Feb 14 Python
python opencv3实现人脸识别(windows)
May 25 Python
Python 使用 prettytable 库打印表格美化输出功能
Dec 26 Python
基于Python和C++实现删除链表的节点
Jul 06 Python
Python如何读取、写入JSON数据
Jul 28 Python
python创建文本文件的简单方法
Aug 30 Python
Python字典dict常用方法函数实例
Nov 09 Python
python 基于selenium实现鼠标拖拽功能
Dec 24 Python
Python3中的tuple函数知识点讲解
Jan 03 Python
Python3利用openpyxl读写Excel文件的方法实例
Feb 03 Python
Python 带星号(* 或 **)的函数参数详解
Feb 23 Python
图神经网络GNN算法
May 11 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中的字符串函数
2006/10/09 PHP
十天学会php之第七天
2006/10/09 PHP
轻松实现php文件上传功能
2017/02/17 PHP
JavaScript入门教程(7) History历史对象
2009/01/31 Javascript
jquery tab标签页的制作
2010/05/10 Javascript
Mootools 图片展示插件(lightbox,ImageMenu)收集集合
2010/05/21 Javascript
高亮显示web页表格行的javascript代码
2010/11/19 Javascript
基于jquery的鼠标拖动效果代码
2012/05/30 Javascript
jQuery实用基础超详细介绍
2013/04/11 Javascript
jquery增加时编辑jqGrid(实例代码)
2013/11/08 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
jquery.validate提示错误信息位置方法
2016/01/22 Javascript
JS实现支持Ajax验证的表单插件
2016/03/24 Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
2016/07/18 Javascript
AngularJs Understanding the Model Component
2016/09/02 Javascript
AngularJs1.x自定义指令独立作用域的函数传入参数方法
2018/10/09 Javascript
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
2018/12/06 jQuery
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
2020/09/02 Javascript
javascript全局自定义鼠标右键菜单
2020/12/08 Javascript
Python 实现一个颜色色值转换的小工具
2016/12/06 Python
详解Python里使用正则表达式的ASCII模式
2017/11/02 Python
python中lambda()的用法
2017/11/16 Python
python 地图经纬度转换、纠偏的实例代码
2018/08/06 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
2020/01/12 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
2020/03/30 Python
Python是什么 Python的用处
2020/05/26 Python
python 图像判断,清晰度(明暗),彩色与黑白实例
2020/06/04 Python
python中round函数如何使用
2020/06/19 Python
去除python中的字符串空格的简单方法
2020/12/22 Python
史上最详细的Python打包成exe文件教程
2021/01/17 Python
如何判断一段程序是由C 编译程序还是由C++编译程序编译的
2013/08/04 面试题
大学生村官工作感言
2014/01/10 职场文书
校园绿化美化方案
2014/06/08 职场文书
分公司总经理岗位职责
2014/08/03 职场文书
Python实战实现爬取天气数据并完成可视化分析详解
2022/06/16 Python