简单了解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 命令行非阻塞输入的小例子
Sep 27 Python
Python sys.argv用法实例
May 28 Python
Python处理json字符串转化为字典的简单实现
Jul 07 Python
Python中matplotlib中文乱码解决办法
May 12 Python
Python实现单词翻译功能
Jun 06 Python
Python单体模式的几种常见实现方法详解
Jul 28 Python
完美解决Python 2.7不能正常使用pip install的问题
Jun 12 Python
selenium获取当前页面的url、源码、title的方法
Jun 12 Python
djano一对一、多对多、分页实例代码
Aug 16 Python
python scipy卷积运算的实现方法
Sep 16 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
Apr 20 Python
Python制作表白爱心合集
Jan 22 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
MVC模式的PHP实现
2006/10/09 PHP
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
2009/06/08 PHP
PHP教程 变量定义
2009/10/23 PHP
PHP 第一节 php简介
2012/04/28 PHP
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
2014/01/14 PHP
PHP  Yii清理缓存的实现方法
2016/11/10 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
laravel 修改.htaccess文件 重定向public的解决方法
2019/10/12 PHP
让js弹出窗口居前显示的实现方法
2013/07/10 Javascript
jquery $(this).attr $(this).val方法使用介绍
2013/10/08 Javascript
使用jQuery动态加载js脚本文件的方法
2014/04/03 Javascript
js中键盘事件实例简析
2015/01/10 Javascript
AngularJS模仿Form表单提交的实现代码
2016/12/08 Javascript
微信小程序点击控件修改样式实例详解
2017/07/07 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
2018/01/09 Javascript
vue项目打包后打开页面空白解决办法
2018/06/29 Javascript
node.js学习笔记之koa框架和简单爬虫练习
2018/12/13 Javascript
Vue.js构建你的第一个包并在NPM上发布的方法步骤
2019/05/01 Javascript
Python不使用int()函数把字符串转换为数字的方法
2018/07/09 Python
Django实现表单验证
2018/09/08 Python
python语言基本语句用法总结
2019/06/11 Python
Python3 实现减少可调用对象的参数个数
2019/12/20 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
2020/03/25 Python
python利用Excel读取和存储测试数据完成接口自动化教程
2020/04/30 Python
python中如何写类
2020/06/29 Python
matplotlib subplot绘制多个子图的方法示例
2020/07/28 Python
python 深度学习中的4种激活函数
2020/09/18 Python
python爬虫中的url下载器用法详解
2020/11/30 Python
python实现简单猜单词游戏
2020/12/24 Python
HTML5中的网络存储实现方式
2020/04/28 HTML / CSS
英国家居装饰品、户外家具和玻璃器皿购物网站:Rinkit.com
2019/11/04 全球购物
业务员简历自我评价
2014/03/06 职场文书
青年文明号服务承诺
2014/03/31 职场文书
2015年小学中秋节活动总结
2015/03/23 职场文书
2015年体育教师个人工作总结
2015/05/12 职场文书
《我在为谁工作》:工作的质量往往决定生活的质量
2019/12/27 职场文书