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的Django框架与认证系统整合的方法
Jul 24 Python
Python装饰器基础详解
Mar 09 Python
python获取微信小程序手机号并绑定遇到的坑
Nov 19 Python
python里运用私有属性和方法总结
Jul 08 Python
Python学习笔记之列表推导式实例分析
Aug 13 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
Sep 29 Python
python3中rank函数的用法
Nov 27 Python
python可视化text()函数使用详解
Feb 11 Python
关于python 跨域处理方式详解
Mar 28 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
Apr 25 Python
Python利用socket模块开发简单的端口扫描工具的实现
Jan 27 Python
Python学习之包与模块详解
Mar 19 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删除二维数组中相同元素及数组重复值的方法示例
2017/05/05 PHP
PHP+Ajax实现的博客文章添加类别功能示例
2018/03/29 PHP
基于jQuery的自动完成插件
2011/02/03 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
2014/06/14 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
2016/06/12 Javascript
javascript编写简易计算器
2017/05/06 Javascript
微信小程序 swiper组件构建轮播图的实例
2017/09/20 Javascript
vue组件父子间通信之综合练习(聊天室)
2017/11/07 Javascript
React精髓!一篇全概括小结(急速)
2019/05/23 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
2019/09/23 Javascript
vue select 获取value和lable操作
2020/08/28 Javascript
[07:03]显微镜下的DOTA2第九期——430圣堂刺客杀戮秀
2014/06/20 DOTA
[02:53]DOTA2亚洲邀请赛 NewBee战队巡礼
2015/02/03 DOTA
[47:03]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第二场 12.10
2020/12/13 DOTA
python将MongoDB里的ObjectId转换为时间戳的方法
2015/03/13 Python
举例讲解Python设计模式编程中对抽象工厂模式的运用
2016/03/02 Python
Python 2与Python 3版本和编码的对比
2017/02/14 Python
python画图系列之个性化显示x轴区段文字的实例
2018/12/13 Python
Python实现图片转字符画的代码实例
2019/02/22 Python
Python中if有多个条件处理方法
2020/02/26 Python
pandas使用之宽表变窄表的实现
2020/04/12 Python
Python3与fastdfs分布式文件系统如何实现交互
2020/06/23 Python
Django web自定义通用权限控制实现方法
2020/11/24 Python
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
2014/06/16 HTML / CSS
豆腐の盛田屋官网:日本自然派的豆乳面膜、肥皂、化妆水、乳液等
2016/10/08 全球购物
Amara美国站:英国高端家居礼品网站,世界各地的奢侈家具品牌
2017/07/26 全球购物
5个HTML5的常用本地存储方式详解与介绍
2021/03/27 HTML / CSS
大学生新闻专业个人自我评价
2013/11/12 职场文书
思想专业自荐信范文
2013/12/25 职场文书
中学教师培训制度
2014/01/31 职场文书
新疆民族团结演讲稿
2014/08/27 职场文书
自愿解除劳动合同协议书
2014/09/11 职场文书
四风剖析查摆对照检查材料思想汇报
2014/09/24 职场文书
我的暑假生活作文(五年级)范文
2019/08/07 职场文书
7个关于Python的经典基础案例
2021/11/07 Python
使用CSS设置滚动条样式
2022/01/18 HTML / CSS