简单了解python filter、map、reduce的区别


Posted in Python onJanuary 14, 2020

这篇文章主要介绍了简单了解python filter、map、reduce的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

python中有一些非常有趣的函数,面试的时候可能会遇到。今天也来总结一下,不过该类的网上资料也相当多,也没多少干货,只是习惯性将一些容易遗忘的功能进行整理。

lambda 为关键字。filter,map,reduce为内置函数。

lambda:实现python中单行最小函数。

g = lambda x: x * 2 
#相当于
def g(x):
  return x*2
  • filter(function, sequence): 对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)。
  • filter(function or None, sequence) -> list, tuple, or string:入参为函数和列表/元组/字符串,返回值为item列表/元组/字符串。
  • map(function, sequence) : 对sequence中的item依次执行function(item),将执行结果function(item)组成一个List返回。map(function, sequence[, sequence, ...]) -> list:入参是为函数和列表/元组/字符串,返回值为function(item)列表。

reduce(function, sequence, starting_value): 对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用。function接收的参数个数只能为2,先把sequence中第一个值和第二个值当参数传给function,再把function的返回值和第三个值当参数传给function,然后只返回一个结果。

reduce(function, sequence[, initial]) -> value:入参是为函数和列表/元组/字符串和初始值,返回值为数值。

用法举例:

#coding=utf-8
#1.lambda用法,冒号之前的是入参,冒号之后的是表达式,返回的值,最简单的函数
print [(lambda x:x*x)(x)for x in range(11)]
#结果:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
print (lambda x:x*x)(3)
#结果:9
g=lambda x:x*x
print g(4)
#结果:16

#2.filter用法:返回执行结果为TRUE的入参(入参是列表字符元组)
print filter(lambda x:x*x-4,range(10))
#结果:[0, 1, 3, 4, 5, 6, 7, 8, 9]

#3.map的用法:对列表入参依次执行函数。入参为列表,有多少个列表,就应该有多少个入参。
print map(lambda x:x*x-4,range(10))
#结果:[-4, -3, 0, 5, 12, 21, 32, 45, 60, 77]
print map(lambda x,y:x*y-4,range(3),[8,9,10])
#结果:[-4, 5, 16]

#4.reduce用法:先把sequence中第一个值和第二个值当参数传给function,再把function的返回值和第三个值当参数传给fuction,最终返回一个结果值
#接收的入参个数只能为2
print reduce(lambda x,y:x*y-4,range(4))
#结果:-40
#计算0到100的和
print reduce(lambda x,y:x+y, range(101))
#结果:5050
print reduce(lambda x,y:x+y, range(101),100)
#结果:5150

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的闭包实例详解
Aug 29 Python
Python的math模块中的常用数学函数整理
Feb 04 Python
Python判断某个用户对某个文件的权限
Oct 13 Python
python 3.6 tkinter+urllib+json实现火车车次信息查询功能
Dec 20 Python
python批量导入数据进Elasticsearch的实例
May 30 Python
python对于requests的封装方法详解
Jan 03 Python
Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】
Jan 07 Python
django解决订单并发问题【推荐】
Jul 31 Python
pytorch 共享参数的示例
Aug 17 Python
Python统计时间内的并发数代码实例
Dec 28 Python
Python实现转换图片背景颜色代码
Apr 30 Python
Django form表单与请求的生命周期步骤详解
Jun 07 Python
Python vtk读取并显示dicom文件示例
Jan 13 #Python
Python解析多帧dicom数据详解
Jan 13 #Python
python 将dicom图片转换成jpg图片的实例
Jan 13 #Python
基于Python和PyYAML读取yaml配置文件数据
Jan 13 #Python
Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中
Jan 13 #Python
利用python实现.dcm格式图像转为.jpg格式
Jan 13 #Python
如何基于Python + requests实现发送HTTP请求
Jan 13 #Python
You might like
深入PHP magic quotes的详解
2013/06/17 PHP
PHP的构造方法,析构方法和this关键字详细介绍
2013/10/22 PHP
php实现遍历文件夹的方法汇总
2017/03/02 PHP
laravel框架实现敏感词汇过滤功能示例
2020/02/15 PHP
如何在一个页面显示多个百度地图
2013/04/07 Javascript
浅谈JavaScript 标准对象
2016/06/02 Javascript
jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
2016/07/09 Javascript
JavaScript简单获取系统当前时间完整示例
2016/08/02 Javascript
教你一步步用jQyery实现轮播器
2016/12/18 Javascript
详解Angular 4.x 动态创建组件
2017/04/25 Javascript
seaJs使用心得之exports与module.exports的区别实例分析
2017/10/13 Javascript
Vue 框架之动态绑定 css 样式实例分析
2018/11/14 Javascript
解决Vue的文本编辑器 vue-quill-editor 小图标样式排布错乱问题
2020/08/03 Javascript
python刷投票的脚本实现代码
2014/11/08 Python
深入源码解析Python中的对象与类型
2015/12/11 Python
python制作爬虫并将抓取结果保存到excel中
2016/04/06 Python
Python数据类型详解(三)元祖:tuple
2016/05/08 Python
Python实现将doc转化pdf格式文档的方法
2018/01/19 Python
python中subprocess批量执行linux命令
2018/04/27 Python
在Django中输出matplotlib生成的图片方法
2018/05/24 Python
python组合无重复三位数的实例
2018/11/13 Python
pandas.DataFrame的pivot()和unstack()实现行转列
2019/07/06 Python
对于Python深浅拷贝的理解
2019/07/29 Python
对YOLOv3模型调用时候的python接口详解
2019/08/26 Python
美国一家专业的太阳镜网上零售商:Solstice太阳镜
2016/07/25 全球购物
List、Map、Set三个接口,存取元素时,各有什么特点?
2015/09/27 面试题
解释一下Windows的消息机制
2014/01/30 面试题
一些Unix笔试题和面试题
2013/01/22 面试题
在校生汽车维修实习自我鉴定
2013/09/19 职场文书
群众路线批评与自我批评
2014/02/06 职场文书
办公自动化专业大学生职业规划书
2014/03/06 职场文书
婚假请假条格式及范文
2014/04/10 职场文书
注册资产评估专业求职信
2014/07/16 职场文书
幼儿园秋季开学寄语
2014/08/02 职场文书
“四风”问题的主要表现和危害思想汇报
2014/09/19 职场文书
2014年十八届四中全会思想汇报范文
2014/10/17 职场文书