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 相关文章推荐
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
Nov 18 Python
极简的Python入门指引
Apr 01 Python
python使用Tkinter显示网络图片的方法
Apr 24 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
May 18 Python
python爬虫框架scrapy实现模拟登录操作示例
Aug 02 Python
python TF-IDF算法实现文本关键词提取
May 29 Python
Django 接收Post请求数据,并保存到数据库的实现方法
Jul 12 Python
Python高级特性 切片 迭代解析
Aug 23 Python
pytorch 彩色图像转灰度图像实例
Jan 13 Python
基于python实现监听Rabbitmq系统日志代码示例
Nov 28 Python
解决Pyinstaller打包软件失败的一个坑
Mar 04 Python
Python绘制地图神器folium的新人入门指南
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
PHP配置文件中最常用四个ini函数
2007/03/19 PHP
一个php Mysql类 可以参考学习熟悉下
2009/06/21 PHP
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
2011/11/26 PHP
php读取文件内容的几种方法详解
2013/06/26 PHP
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
2014/06/07 Javascript
javascript ajax的5种状态介绍
2014/08/18 Javascript
JQuery右键菜单插件ContextMenu使用指南
2014/12/19 Javascript
JavaScript动态修改背景颜色的方法
2015/04/16 Javascript
使用JQuery FancyBox插件实现图片展示特效
2015/11/16 Javascript
jquery ztree异步搜索(搜叶子)实践
2016/02/25 Javascript
jQuery简单验证上传文件大小及类型的方法
2016/06/02 Javascript
JavaScript数据类型转换的注意事项
2016/07/31 Javascript
JS实现的走迷宫小游戏完整实例
2017/07/19 Javascript
Vue 中mixin 的用法详解
2018/04/23 Javascript
vue删除html内容的标签样式实例
2018/09/13 Javascript
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
Python新手实现2048小游戏
2015/03/31 Python
python实现控制台打印的方法
2019/01/12 Python
学生信息管理系统Python面向对象版
2019/01/30 Python
python读出当前时间精度到秒的代码
2019/07/05 Python
Python的形参和实参使用方式
2019/12/24 Python
win10从零安装配置pytorch全过程图文详解
2020/05/08 Python
Python如何在单元测试中给对象打补丁
2020/08/03 Python
python使用dlib进行人脸检测和关键点的示例
2020/12/05 Python
JD Sports丹麦:英国领先的运动时尚零售商
2020/11/24 全球购物
NFL官方在线商店:NFLShop
2020/07/29 全球购物
上课睡觉检讨书
2014/01/28 职场文书
青年教师典范事迹材料
2014/01/31 职场文书
2014年科研工作总结
2014/12/03 职场文书
2014年信息技术工作总结
2014/12/16 职场文书
2015年机关后勤工作总结
2015/05/26 职场文书
早会开场白台词大全
2015/06/01 职场文书
汤姆索亚历险记读书笔记
2015/06/29 职场文书
中学生打架检讨书之500字
2019/08/06 职场文书
Spring实现内置监听器
2021/07/09 Java/Android