Python filter()及reduce()函数使用方法解析


Posted in Python onSeptember 05, 2020

一、filter() 

在Python内建函数中,有一个和map()函数用法类似、却可以用来过滤元素的迭代函数,这个函数就是filter()。它的函数原型是:filter(function,itearable)

filter返回的是一个filter对象,可以通过list()或者for循环取出内容。 注意:传入的函数返回值必须是布尔类型。若是真则保留元素,假则过滤掉这元素

def is_even(x):
  return x%2==0
a=filter(is_even,[1,2,3,4,5,6])
print(a) 
#<filter object at 0x017FCF30>
print(list(a))
#[2, 4, 6]

下面在举个例子,体会一下发filter()的的用法。

#过滤列表中的元素
def is_empty(s):
  return s.strip()!=''
print(list(filter(is_empty,['','\n','\t','aa']))) #['aa']

二、reduce()

reduce()函数原型是reduce(function,sequence),它的作用是用function对序列进行累积操作。它返回值可以直接输出,不像map和filter返回的是一个迭代对象,还得去转化。

所谓的累计操作就是就是第 1、2 个元素用 function 函数运算,得到的结果再与第三个数据用 function 函数运算,然后得到的结果再与第四个进行运算,一次类推。

下面通过一个具体的例子来说明所谓的累计操作是怎么样的。

注:reduce函数是存放再functiontools模块中的,使用前要导入

#函数功能是实现阶乘
from functools import reduce #导入reduce
print(reduce(lambda x,y:x*y,[1,2,3,4])
#输出是24

整个过程如下:

1、操作第1,2个元素,即1 * 2 得到2

2、操作1的结果和第3个元素,即 2 * 3 得到6

3、操做2的结果和第4个元素,即 6 * 4 得到24

4、返回24

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的装饰器用法详解
Jan 14 Python
python实现自动重启本程序的方法
Jul 09 Python
简单了解Django模板的使用
Dec 20 Python
hmac模块生成加入了密钥的消息摘要详解
Jan 11 Python
人脸识别经典算法一 特征脸方法(Eigenface)
Mar 13 Python
Python网络编程使用select实现socket全双工异步通信功能示例
Apr 09 Python
python删除文本中行数标签的方法
May 31 Python
利用python计算windows全盘文件md5值的脚本
Jul 27 Python
浅析python中的del用法
Sep 02 Python
Python如何使用vars返回对象的属性列表
Oct 17 Python
python 解决函数返回return的问题
Dec 05 Python
python中24小时制转换为12小时制的方法
Jun 18 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
Sep 05 #Python
Python中猜拳游戏与猜筛子游戏的实现方法
Sep 04 #Python
Python实现快速大文件比较代码解析
Sep 04 #Python
基于python实现图片转字符画代码实例
Sep 04 #Python
Python HTMLTestRunner如何下载生成报告
Sep 04 #Python
详解python中的lambda与sorted函数
Sep 04 #Python
如何利用Python动态模拟太阳系运转
Sep 04 #Python
You might like
10个可以简化php开发过程的MySQL工具
2010/04/11 PHP
php从数组中随机抽取一些元素的代码
2012/11/05 PHP
Yii Framework框架获取分类下面的所有子类方法
2014/06/20 PHP
ThinkPHP调用百度翻译类实现在线翻译
2014/06/26 PHP
windows7下安装php的php-ssh2扩展教程
2014/07/04 PHP
使用php方法curl抓取AJAX异步内容思路分析及代码分享
2014/08/25 PHP
PHP获取一年中每个星期的开始和结束日期的方法
2015/02/12 PHP
(推荐一个超好的JS函数库)S.Sams Lifexperience ScriptClassLib
2007/04/29 Javascript
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
2009/11/27 Javascript
JavaScript关于select的相关操作说明
2010/01/13 Javascript
jquery.lazyload  实现图片延迟加载jquery插件
2010/02/06 Javascript
jQuery 动画弹出窗体支持多种展现方式
2010/04/29 Javascript
javascript完美拖拽的实现方法
2013/09/29 Javascript
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
2013/11/14 Javascript
IE中getElementsByName()对有些元素无效的解决方案
2014/09/28 Javascript
Javascript解析URL方法详解
2014/12/05 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
2015/04/12 Javascript
jQuery unbind()方法实例详解
2016/01/19 Javascript
jQuery自定义数值抽奖活动代码
2016/06/11 Javascript
Bootstrap优化站点资源、响应式图片、传送带使用详解3
2016/10/14 Javascript
jQuery右下角悬浮广告实例
2016/10/17 Javascript
关于微信jssdk实现多图片上传的一点心得分享
2016/12/13 Javascript
微信小程序实现打卡日历功能
2020/09/21 Javascript
微信小程序保存多张图片的实现方法
2019/03/05 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
微信公众号平台接口开发 菜单管理的实现
2019/08/14 Javascript
mpvue实现微信小程序快递单号查询代码
2020/04/03 Javascript
[04:19]DOTA2亚洲邀请赛 现场花絮
2015/03/11 DOTA
Python递归实现汉诺塔算法示例
2018/03/19 Python
pandas apply 函数 实现多进程的示例讲解
2018/04/20 Python
Python实现端口检测的方法
2018/07/24 Python
台湾森森购物网:U-mall
2017/10/16 全球购物
证婚人搞笑证婚词
2014/01/10 职场文书
高中生操行评语大全
2014/04/25 职场文书
海上钢琴师观后感
2015/06/03 职场文书