简单了解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装饰器 免去调用父类构造函数的麻烦
May 18 Python
python整小时 整天时间戳获取算法示例
Feb 20 Python
解决Django生产环境无法加载静态文件问题的解决
Apr 23 Python
Python3.5面向对象与继承图文实例详解
Apr 24 Python
详解Python中的测试工具
Jun 09 Python
python excel转换csv代码实例
Aug 26 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
Jan 15 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
Mar 24 Python
python实现控制台输出彩色字体
Apr 05 Python
jupyter lab文件导出/下载方式
Apr 22 Python
Python环境管理virtualenv&virtualenvwrapper的配置详解
Jul 01 Python
Scrapy项目实战之爬取某社区用户详情
Sep 17 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下获取http状态的实现代码
2014/05/09 PHP
浅谈php冒泡排序
2014/12/30 PHP
PHP中error_reporting()用法详解
2015/08/31 PHP
php分页查询mysql结果的base64处理方法示例
2017/05/18 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
2017/12/31 PHP
redis+php实现微博(一)注册与登录功能详解
2019/09/23 PHP
利用js获取服务器时间的两个简单方法
2010/01/08 Javascript
js Dialog 实践分享
2012/10/22 Javascript
select标签模拟/美化方法采用JS外挂式插件
2013/04/01 Javascript
Ajax请求在数据量大的时候出现超时的解决方法
2014/02/27 Javascript
Javascript中浮点数相乘的一个解决方法
2014/06/03 Javascript
jQuery实现文本展开收缩特效
2015/06/03 Javascript
JS+DIV+CSS实现仿表单下拉列表效果
2015/08/18 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
2017/10/31 Javascript
JS计算输出100元钱买100只鸡问题的解决方法
2018/01/04 Javascript
详解Require.js与Sea.js的区别
2018/08/05 Javascript
js实现贪吃蛇小游戏
2019/10/29 Javascript
[04:11]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/01/30 DOTA
python实现数据预处理之填充缺失值的示例
2017/12/22 Python
Python迭代器和生成器定义与用法示例
2018/02/10 Python
Python图像处理之识别图像中的文字(实例讲解)
2018/05/10 Python
详解Python 协程的详细用法使用和例子
2018/06/15 Python
django drf框架中的user验证以及JWT拓展的介绍
2019/08/12 Python
python 爬虫百度地图的信息界面的实现方法
2019/10/27 Python
python爬虫beautifulsoup解析html方法
2020/12/07 Python
We Fashion荷兰:一家国际时装公司
2018/04/18 全球购物
Unineed中文官网:高端护肤美妆与时尚配饰,英国直邮
2020/07/23 全球购物
展会邀请函范文
2014/01/26 职场文书
幼儿园教师获奖感言
2014/03/11 职场文书
大队干部竞选演讲稿
2014/04/28 职场文书
财务部副经理岗位职责范本
2014/06/17 职场文书
大专生求职信
2014/06/29 职场文书
2014县委书记党的群众路线教育实践活动对照检查材料思想汇报
2014/09/22 职场文书
少先队中队工作总结
2015/08/14 职场文书
家访教师心得体会
2016/01/23 职场文书
windows安装 redis 6.2.6最新步骤详解
2022/04/26 Redis