简单了解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解析基于xml格式的日志文件
Feb 25 Python
python 读取txt中每行数据,并且保存到excel中的实例
Apr 29 Python
python自动化生成IOS的图标
Nov 13 Python
创建Django项目图文实例详解
Jun 06 Python
pywinauto自动化操作记事本
Aug 26 Python
tensorflow 实现自定义layer并添加到计算图中
Feb 04 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
Feb 19 Python
python中翻译功能translate模块实现方法
Dec 17 Python
python 自动刷新网页的两种方法
Apr 20 Python
python基础学习之生成器与文件系统知识总结
May 25 Python
使用Python脚本对GiteePages进行一键部署的使用说明
May 27 Python
Python实现8种常用抽样方法
Jun 27 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 empty函数判断mysql表单是否为空
2010/04/12 PHP
基于PHP的简单采集数据入库程序
2014/07/30 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
解决jquery .ajax 在IE下卡死问题的解决方法
2009/10/26 Javascript
JQuery 弹出框定位实现方法
2010/12/02 Javascript
JQuery学习笔记 nt-child的使用
2011/01/17 Javascript
基于Jquery+Ajax+Json的高效分页实现代码
2011/10/29 Javascript
js校验表单后提交表单的三种方法总结
2014/02/28 Javascript
JS实现点击文字对应DIV层不停闪动效果的方法
2015/03/02 Javascript
JavaScript中数据结构与算法(五):经典KMP算法
2015/06/19 Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
2016/04/07 Javascript
jQuery模拟窗口抖动效果
2017/03/15 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
2017/04/20 Javascript
在vue-cli脚手架中配置一个vue-router前端路由
2017/07/03 Javascript
JS桶排序的简单理解与实现方法示例
2019/11/25 Javascript
Python中正则表达式详解
2017/05/17 Python
django解决订单并发问题【推荐】
2019/07/31 Python
Django ORM多对多查询方法(自定义第三张表&ManyToManyField)
2019/08/09 Python
Python如何实现强制数据类型转换
2019/11/22 Python
pytorch标签转onehot形式实例
2020/01/02 Python
浅谈python多线程和多线程变量共享问题介绍
2020/04/17 Python
python3爬虫GIL修改多线程实例讲解
2020/11/24 Python
Python爬虫之Selenium下拉框处理的实现
2020/12/04 Python
详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据
2020/12/13 Python
HTML5 Web存储方式的localStorage和sessionStorage进行数据本地存储案例应用
2012/12/09 HTML / CSS
小程序瀑布流解决左右两边高度差距过大的问题
2019/02/20 HTML / CSS
TUMI新加坡官网:国际领先的商旅箱包品牌
2019/01/12 全球购物
加拿大在线眼镜零售商:SmartBuyGlasses加拿大
2019/05/25 全球购物
超市国庆节促销方案
2014/02/20 职场文书
小学毕业寄语大全
2014/04/03 职场文书
英文演讲稿开场白
2014/08/25 职场文书
2014大学校园光棍节活动策划书
2014/09/29 职场文书
安全生产月宣传标语
2014/10/06 职场文书
师德先进个人事迹材料
2014/12/19 职场文书
教师师德承诺书2016
2016/03/25 职场文书
如何撰写促销方案?
2019/07/05 职场文书