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 域名分析工具实现代码
Jul 15 Python
Python入门篇之条件、循环
Oct 17 Python
python中json格式数据输出的简单实现方法
Oct 31 Python
Python如何import文件夹下的文件(实现方法)
Jan 24 Python
Python中字典(dict)合并的四种方法总结
Aug 10 Python
Python中elasticsearch插入和更新数据的实现方法
Apr 01 Python
基于wxPython的GUI实现输入对话框(1)
Feb 27 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
Aug 02 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
Aug 09 Python
python实现布隆过滤器及原理解析
Dec 08 Python
Python实现自动访问网页的例子
Feb 21 Python
Python 如何展开嵌套的序列
Aug 01 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
要会喝咖啡也要会知道咖啡豆
2021/03/03 咖啡文化
php使用curl发送json格式数据实例
2013/12/17 PHP
php操作memcache缓存方法分享
2015/06/03 PHP
Prototype1.5 rc2版指南最后一篇之Position
2007/01/10 Javascript
javascript基础的动画教程,直观易懂
2007/01/10 Javascript
js弹窗代码 可以指定弹出间隔
2010/07/03 Javascript
js中获取事件对象的方法小结
2011/03/13 Javascript
JavaScript将数据转换成整数的方法
2014/01/04 Javascript
js 提交form表单和设置form表单请求路径的实现方法
2016/10/25 Javascript
AngularJS实现根据变量改变动态加载模板的方法
2016/11/04 Javascript
JavaScript实现大图轮播效果
2017/01/11 Javascript
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
Vue的v-model的几种修饰符.lazy,.number和.trim的用法说明
2020/08/05 Javascript
[02:25]专访DOTA2负责人Erik 国际邀请赛暂不会离开西雅
2014/07/21 DOTA
Python的__builtin__模块中的一些要点知识
2015/05/02 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
Python文件读写w+和r+区别解析
2020/03/26 Python
简单了解pytest测试框架setup和tearDown
2020/04/14 Python
Python如何创建装饰器时保留函数元信息
2020/08/07 Python
Supersmart英国:欧洲市场首批食品补充剂供应商之一
2018/05/05 全球购物
英国拖鞋购买网站:Bedroom Athletics
2020/02/28 全球购物
JAVA程序员面试题
2012/10/03 面试题
建筑专业自荐信范文
2014/01/05 职场文书
班级活动策划书
2014/02/06 职场文书
函授自我鉴定范文
2014/02/06 职场文书
“九一八事变纪念日”国旗下讲话稿
2014/09/14 职场文书
合同权益转让协议书模板
2014/11/18 职场文书
2014小学数学教研组工作总结
2014/12/06 职场文书
人事专员岗位职责
2015/02/03 职场文书
公务员年终个人总结
2015/02/12 职场文书
单位考核聘任报告
2015/03/02 职场文书
检讨书怎么写
2015/05/07 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
优秀新员工事迹材料
2019/05/13 职场文书
《弟子规》读后感:知廉耻、明是非、懂荣辱、辨善恶
2019/12/03 职场文书
Pytorch数据读取之Dataset和DataLoader知识总结
2021/05/23 Python