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 mysqldb连接数据库
Mar 16 Python
使用python实现省市三级菜单效果
Jan 20 Python
Flask框架的学习指南之用户登录管理
Nov 20 Python
聊聊Python中的pypy
Jan 12 Python
使用Scrapy爬取动态数据
Oct 21 Python
Python 普通最小二乘法(OLS)进行多项式拟合的方法
Dec 29 Python
把pandas转换int型为str型的方法
Jan 29 Python
Python3列表内置方法大全及示例代码小结
May 10 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
Apr 29 Python
Python格式化输出--%s,%d,%f的代码解析
Apr 29 Python
Python限制内存和CPU使用量的方法(Unix系统适用)
Aug 04 Python
详解Python+OpenCV进行基础的图像操作
Feb 15 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
php Undefined index和Undefined variable的解决方法
2008/03/27 PHP
ThinkPHP3.1.3版本新特性概述
2014/06/19 PHP
PHP实现扎金花游戏之大小比赛的方法
2015/03/10 PHP
深入解析PHP的Laravel框架中的event事件操作
2016/03/21 PHP
PHPCMS2008广告模板SQL注入漏洞修复
2016/10/11 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
2017/05/20 PHP
PHP迭代器和生成器用法实例分析
2019/09/28 PHP
php中文语义分析实现方法示例
2019/09/28 PHP
js模拟实现Array的sort方法
2007/12/11 Javascript
你必须知道的JavaScript 变量命名规则详解
2013/05/07 Javascript
Extjs407 getValue()和getRawValue()区别介绍
2013/05/21 Javascript
解决jquery中动态新增的元素节点无法触发事件问题的两种方法
2015/10/30 Javascript
深入理解Angular中的依赖注入
2017/06/26 Javascript
极简主义法编写JavaScript类
2017/11/02 Javascript
JS实现读取xml内容并输出到div中的方法示例
2018/04/19 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
2018/07/19 Javascript
jquery插件开发模式实例详解
2019/07/20 jQuery
js实现点击生成随机div
2020/01/16 Javascript
在Chrome DevTools中调试JavaScript的实现
2020/04/07 Javascript
[01:27]DOTA2电竞之夜 今夜共饮庆功酒
2014/08/02 DOTA
详解python列表生成式和列表生成式器区别
2019/03/27 Python
python使用正则来处理各种匹配问题
2019/12/22 Python
Python中的全局变量如何理解
2020/06/04 Python
如何基于python实现年会抽奖工具
2020/10/20 Python
解决Python import .pyd 可能遇到路径的问题
2021/03/04 Python
Mamas & Papas沙特阿拉伯:英国最受欢迎的婴儿品牌
2017/11/20 全球购物
美国在线医疗分销商:MedEx Supply
2020/02/04 全球购物
高中毕业自我鉴定范文
2013/10/02 职场文书
大学生求职简历的自我评价
2013/10/14 职场文书
建筑系毕业生自我鉴定
2014/01/24 职场文书
《九色鹿》教学反思
2014/02/27 职场文书
2016中考冲刺决心书
2015/09/22 职场文书
2016大学生社会实践单位评语
2015/12/01 职场文书
基于tensorflow权重文件的解读
2021/05/26 Python
SpringBoot集成Redis,并自定义对象序列化操作
2021/06/22 Java/Android
vue中data里面的数据相互使用方式
2022/06/05 Vue.js