简单了解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遍历类中所有成员的方法
Mar 18 Python
python如何通过protobuf实现rpc
Mar 06 Python
浅谈Python中函数的参数传递
Jun 21 Python
对Python中DataFrame按照行遍历的方法
Apr 08 Python
Django添加favicon.ico图标的示例代码
Aug 07 Python
django DRF图片路径问题的解决方法
Sep 10 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
Nov 29 Python
django xadmin 管理器常用显示设置方式
Mar 11 Python
Python列表如何更新值
May 27 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
Jul 03 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
Aug 07 Python
Python代码覆盖率统计工具coverage.py用法详解
Nov 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获取文件绝对路径的代码(上一级目录)
2011/05/29 PHP
PHP实现的简易版图片相似度比较
2015/01/07 PHP
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
2011/09/26 Javascript
Javascript delete 引用类型对象
2013/11/01 Javascript
怎么选择Javascript框架(Javascript Framework)
2013/11/22 Javascript
js中substring和substr的定义和用法
2014/05/05 Javascript
jquery衣服颜色选取插件效果代码分享
2015/08/28 Javascript
JavaScript实现相册弹窗功能(zepto.js)
2016/06/21 Javascript
javascript基本数据类型及类型检测常用方法小结
2016/12/14 Javascript
easyui 中的datagrid跨页勾选问题的实现方法
2017/01/18 Javascript
详解vue前后台数据交互vue-resource文档
2017/07/19 Javascript
vue中将html字符串转换成html后遇到的问题小结
2018/12/10 Javascript
jQuery判断自定义属性data-val用法示例
2019/01/07 jQuery
Ant Design Vue 添加区分中英文的长度校验功能
2020/01/21 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
2020/04/30 jQuery
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
vue中如何自定义右键菜单详解
2020/12/08 Vue.js
[00:32]2018DOTA2亚洲邀请赛EG出场
2018/04/03 DOTA
Python编写屏幕截图程序方法
2015/02/18 Python
Python基于回溯法子集树模板解决选排问题示例
2017/09/07 Python
Django 开发环境配置过程详解
2019/07/18 Python
Python time库基本使用方法分析
2019/12/13 Python
Python数组并集交集补集代码实例
2020/02/18 Python
python_mask_array的用法
2020/02/18 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
2020/03/20 Python
通过Python实现Payload分离免杀过程详解
2020/07/13 Python
Pat McGrath Labs官网:世界上最有影响力的化妆师推出的彩妆品牌
2018/01/07 全球购物
微软美国官方网站:Microsoft美国
2018/05/10 全球购物
美国战术品牌:5.11 Tactical
2019/05/01 全球购物
英国领先的豪华时尚家居网上商店:Amara
2019/08/12 全球购物
25岁生日感言
2014/01/13 职场文书
商业房地产广告语
2014/03/13 职场文书
2015年教师节贺卡寄语
2015/03/24 职场文书
在校证明模板
2015/06/17 职场文书
大学开学典礼新闻稿
2015/07/17 职场文书
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle