简单了解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脚本获取操作系统版本信息
Dec 17 Python
Python队列的定义与使用方法示例
Jun 24 Python
python如何生成网页验证码
Jul 28 Python
Python any()函数的使用方法
Oct 28 Python
python Qt5实现窗体跟踪鼠标移动
Dec 13 Python
解决TensorFlow GPU版出现OOM错误的问题
Feb 03 Python
使用python3 实现插入数据到mysql
Mar 02 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
Jun 03 Python
python实现图片,视频人脸识别(dlib版)
Nov 18 Python
Python中全局变量和局部变量的理解与区别
Feb 07 Python
利用Python网络爬虫爬取各大音乐评论的代码
Apr 13 Python
Python+Tkinter制作专属图形化界面
Apr 01 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
提取HTML标签
2006/10/09 PHP
php 字符串函数收集
2010/03/29 PHP
php查询ip所在地的方法
2014/12/05 PHP
PHP整合七牛实现上传文件
2015/07/03 PHP
深入浅析用PHP实现MVC
2016/03/02 PHP
js 通用javascript函数库整理
2011/08/14 Javascript
jquerymobile checkbox及时刷新才能获取其准确值
2012/04/14 Javascript
js改变img标签的src属性在IE下没反应的解决方法
2013/07/23 Javascript
Javascript中引用示例介绍
2014/02/21 Javascript
JavaScript基础教程之alert弹出提示框实例
2014/10/16 Javascript
JavaScript必知必会(九)function 说起 闭包问题
2016/06/08 Javascript
js调用屏幕宽度的简单方法
2016/11/14 Javascript
jQuery实现点击某个div打开层,点击其他div关闭层实例分析(阻止冒泡)
2016/11/18 Javascript
js通过Date对象实现倒计时动画效果
2017/10/27 Javascript
在Mac下彻底卸载node和npm的方法
2018/05/16 Javascript
JS构造一个html文本内容成文件流形式发送到后台
2018/07/31 Javascript
ssm+vue前后端分离框架整合实现(附源码)
2020/07/08 Javascript
举例讲解如何在Python编程中进行迭代和遍历
2016/01/19 Python
python 读写、创建 文件的方法(必看)
2016/09/12 Python
Python Django切换MySQL数据库实例详解
2019/07/16 Python
python3-flask-3将信息写入日志的实操方法
2019/11/12 Python
Python实现银行账户资金交易管理系统
2020/01/03 Python
TensorFlow:将ckpt文件固化成pb文件教程
2020/02/11 Python
Python matplotlib修改默认字体的操作
2020/03/05 Python
Python3操作YAML文件格式方法解析
2020/04/10 Python
基于Python下载网络图片方法汇总代码实例
2020/06/24 Python
filter使用python3代码进行迭代元素的实例详解
2020/12/03 Python
Pytorch实现WGAN用于动漫头像生成
2021/03/04 Python
英国在线定做百叶窗网站:Make My Blinds
2020/08/17 全球购物
关联、聚合(Aggregation)以及组合(Composition)的区别
2012/02/29 面试题
正隆泰信息技术有限公司上机题
2012/06/14 面试题
生日礼品店创业计划书范文
2014/03/21 职场文书
物理系毕业生自荐书
2014/06/13 职场文书
司法局群众路线教育实践活动整改措施
2014/09/17 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
2021/06/26 MySQL