简单了解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实现批量修改文件名实例
Jul 08 Python
Python黑魔法Descriptor描述符的实例解析
Jun 02 Python
python多线程方式执行多个bat代码
Jun 07 Python
多个应用共存的Django配置方法
May 30 Python
Python读取系统文件夹内所有文件并统计数量的方法
Oct 23 Python
Python FFT合成波形的实例
Dec 04 Python
解决python gdal投影坐标系转换的问题
Jan 17 Python
python统计函数库scipy.stats的用法解析
Feb 25 Python
基于Python爬取爱奇艺资源过程解析
Mar 02 Python
详解python logging日志传输
Jul 01 Python
Python+unittest+requests+excel实现接口自动化测试框架
Dec 23 Python
Keras在mnist上的CNN实践,并且自定义loss函数曲线图操作
May 25 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实现jQuery扩展函数
2009/10/30 PHP
php中设置index.php文件为只读的方法
2013/02/06 PHP
php+Ajax无刷新验证用户名操作实例详解
2019/03/04 PHP
妙用Jquery的val()方法
2012/06/27 Javascript
js iframe跨域访问(同主域/非同主域)分别深入介绍
2013/01/24 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
2013/10/22 Javascript
JS获取键盘上任意按键的值(实例代码)
2013/11/12 Javascript
js设置组合快捷键/tabindex功能的方法
2013/11/21 Javascript
js的参数有长度限制吗?发现不能超过2083个字符
2014/04/20 Javascript
JavaScript中消除闭包的一般方法介绍
2015/03/16 Javascript
JS实现可直接显示网页代码运行效果的HTML代码预览功能实例
2015/08/06 Javascript
理解JavaScript中worker事件api
2015/12/25 Javascript
angular 用拦截器统一处理http请求和响应的方法
2017/06/08 Javascript
JS文件中加载jquery.js的实例代码
2018/05/05 jQuery
详解angular分页插件tm.pagination二次触发问题解决方案
2018/07/20 Javascript
JS实现获取自定义属性data值的方法示例
2018/12/19 Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
2019/04/30 Javascript
Vuex modules模式下mapState/mapMutations的操作实例
2019/10/17 Javascript
Python中的True,False条件判断实例分析
2015/01/12 Python
Python 结巴分词实现关键词抽取分析
2017/10/21 Python
浅谈Python中的全局锁(GIL)问题
2019/01/11 Python
Python多项式回归的实现方法
2019/03/11 Python
python制作简单五子棋游戏
2019/06/18 Python
树莓派实现移动拍照
2019/06/22 Python
python异常触发及自定义异常类解析
2019/08/06 Python
Python使用matplotlib 模块scatter方法画散点图示例
2019/09/27 Python
解析Python3中的Import
2019/10/13 Python
在Python中使用filter去除列表中值为假及空字符串的例子
2019/11/18 Python
python实现批处理文件
2020/07/28 Python
Web Service面试题:如何搭建Axis2的开发环境
2012/06/20 面试题
初任培训自我鉴定
2013/10/07 职场文书
水电工岗位职责
2015/02/14 职场文书
2015最新民情日记范文
2015/06/26 职场文书
年终工作总结范文
2019/06/20 职场文书
什么是动态刷新率DRR? Windows11动态刷新率功能介绍
2021/11/21 数码科技
canvas 中如何实现物体的框选
2022/08/05 Javascript