简单了解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 02 Python
使用pygame模块编写贪吃蛇的实例讲解
Feb 05 Python
Pandas之DataFrame对象的列和索引之间的转化
Jun 25 Python
Python实现最常见加密方式详解
Jul 13 Python
python图形开发GUI库wxpython使用方法详解
Feb 14 Python
Python自动化操作实现图例绘制
Jul 09 Python
Python 代码调试技巧示例代码
Aug 11 Python
python模拟点击玩游戏的实例讲解
Nov 26 Python
正确的理解和使用Django信号(Signals)
Apr 14 Python
教你怎么用Python selenium操作浏览器对象的基础API
Jun 23 Python
python_tkinter事件类型详情
Mar 20 Python
使用Python拟合函数曲线
Apr 14 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
2006/12/14 PHP
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
2006/09/22 Javascript
js TextArea的选中区域处理
2010/12/28 Javascript
Jquery获取元素的父容器对象示例代码
2014/02/10 Javascript
JavaScript省市联动实现代码
2014/02/15 Javascript
通过Ajax使用FormData对象无刷新上传文件方法
2016/12/08 Javascript
Vue.js组件tab实现选项卡切换
2020/03/23 Javascript
React-Native中禁用Navigator手势返回的示例代码
2017/09/09 Javascript
Nodejs Express 通过log4js写日志到Logstash(ELK)
2018/08/30 NodeJs
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
2019/01/23 Javascript
关于vue2强制刷新,解决页面不会重新渲染的问题
2019/10/29 Javascript
vue项目引入ts步骤(小结)
2019/10/31 Javascript
Vue分页效果与购物车功能
2019/12/13 Javascript
axios如何取消重复无用的请求详解
2019/12/15 Javascript
d3.js实现图形缩放平移
2019/12/19 Javascript
通过vue刷新左侧菜单栏操作
2020/08/06 Javascript
Python的条件语句与运算符优先级详解
2015/10/13 Python
用Python中的turtle模块画图两只小羊方法
2019/04/09 Python
Python爬虫——爬取豆瓣电影Top250代码实例
2019/04/17 Python
python调用自定义函数的实例操作
2019/06/26 Python
基于Django静态资源部署404的解决方法
2019/07/28 Python
python3 深浅copy对比详解
2019/08/12 Python
django-利用session机制实现唯一登录的例子
2020/03/16 Python
Python实现猜年龄游戏代码实例
2020/03/25 Python
python实现文字版扫雷
2020/04/24 Python
Python通过两个dataframe用for循环求笛卡尔积
2020/04/29 Python
信访工作者先进事迹
2014/01/17 职场文书
幼师求职自荐信范文
2014/01/26 职场文书
小学生暑假家长评语
2014/04/17 职场文书
行政工作试用期自我评价
2014/09/14 职场文书
党的群众路线教育实践活动对照检查材料(个人)
2014/09/24 职场文书
司法局群众路线教育实践活动整改措施思想汇报
2014/10/13 职场文书
《秦兵马俑》教学反思
2016/02/24 职场文书
告诉你创业计划书的8个实用技巧
2019/07/12 职场文书
Java框架入门之简单介绍SpringBoot框架
2021/06/18 Java/Android
分享node.js实现简单登录注册的具体代码
2022/04/26 NodeJs