简单了解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 17 Python
Python 的 Socket 编程
Mar 24 Python
python实现将文本转换成语音的方法
May 28 Python
在Django框架中设置语言偏好的教程
Jul 27 Python
详解Python中表达式i += x与i = i + x是否等价
Feb 08 Python
pandas筛选某列出现编码错误的解决方法
Nov 07 Python
解决新django中的path不能使用正则表达式的问题
Dec 18 Python
在python中对变量判断是否为None的三种方法总结
Jan 23 Python
Python 共享变量加锁、释放详解
Aug 28 Python
Python命令行click参数用法解析
Dec 19 Python
Python lxml模块的基本使用方法分析
Dec 21 Python
解决Pyinstaller打包软件失败的一个坑
Mar 04 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模拟post行为代码总结(POST方式不是绝对安全)
2012/02/22 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
2013/06/25 PHP
PHP中soap的用法实例
2014/10/24 PHP
php模拟登陆的实现方法分析
2015/01/09 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
2017/06/02 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
laravel-admin 实现给grid的列添加行数序号的方法
2019/10/08 PHP
jQuery中delegate和on的用法与区别详细解析
2014/01/26 Javascript
js判断ie版本号的简单实现代码
2014/03/05 Javascript
Jquery解析Json格式数据过程代码
2014/10/17 Javascript
Nodejs的express使用教程
2015/11/23 NodeJs
jQuery手动点击实现图片轮播特效
2020/04/20 Javascript
Bootstrap每天必学之工具提示(Tooltip)插件
2016/04/26 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
微信小程序-小说阅读小程序实例(demo)
2017/01/12 Javascript
EasyUi 打开对话框后控件赋值及赋值后不显示的问题解决办法
2017/01/19 Javascript
easyui datagrid 表格中操作栏 按钮图标不显示的解决方法
2017/07/27 Javascript
ajax请求+vue.js渲染+页面加载的示例
2018/02/11 Javascript
VUE 3D轮播图封装实现方法
2018/07/03 Javascript
js实现电灯开关效果
2021/01/19 Javascript
[47:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
python实现批量修改文件名代码
2017/09/10 Python
Python 多进程并发操作中进程池Pool的实例
2017/11/01 Python
Python实现备份MySQL数据库的方法示例
2018/01/11 Python
使用python将excel数据导入数据库过程详解
2019/08/27 Python
Django将默认的SQLite更换为MySQL的实现
2019/11/18 Python
Python小白学习爬虫常用请求报头
2020/06/03 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
2020/07/30 Python
CSS3解决移动页面上点击链接触发色块的问题
2016/06/03 HTML / CSS
印度最大的网上花店:Ferns N Petals(鲜花、礼品和蛋糕)
2017/10/16 全球购物
英国现代家具和照明购物网站:Heal’s
2019/10/30 全球购物
New delete 与malloc free 的联系与区别
2013/02/04 面试题
高中的职业生涯规划书
2013/12/28 职场文书
超市仓管员岗位职责
2014/04/07 职场文书
2016年小学感恩节活动总结
2016/04/01 职场文书