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 的描述符 descriptor详解
Feb 27 Python
Python采用Django开发自己的博客系统
Sep 29 Python
Python爬虫代理IP池实现方法
Jan 05 Python
python3+PyQt5实现自定义流体混合窗口部件
Apr 24 Python
关于Tensorflow中的tf.train.batch函数的使用
Apr 24 Python
深入浅析Python中list的复制及深拷贝与浅拷贝
Sep 03 Python
解决Pycharm下面出现No R interpreter defined的问题
Oct 29 Python
对python PLT中的image和skimage处理图片方法详解
Jan 10 Python
pyqt5 实现工具栏文字图片同时显示
Jun 13 Python
Python 转移文件至云对象存储的方法
Feb 07 Python
Pytorch可视化的几种实现方法
Jun 10 Python
PyQt5结合QtDesigner实现文本框读写操作
Jun 11 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
discuz程序的PHP加密函数原理分析
2011/08/05 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
PHP连接和操作MySQL数据库基础教程
2014/09/29 PHP
thinkPHP中验证码的简单使用方法
2015/12/26 PHP
基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
2010/06/10 Javascript
JavaScript高级程序设计 扩展--关于动态原型
2010/11/09 Javascript
10款非常有用的 Ajax 插件分享
2012/03/14 Javascript
Javascript中Array用法实例分析
2015/06/13 Javascript
第一次接触神奇的Bootstrap基础排版
2016/07/26 Javascript
使用JavaScript判断手机浏览器是横屏还是竖屏问题
2016/08/02 Javascript
深入理解jQuery3.0的domManip函数
2016/09/01 Javascript
DropDownList控件绑定数据源的三种方法
2016/12/24 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
2017/02/21 Javascript
微信小程序App生命周期详解
2018/01/31 Javascript
浅析Vue实例以及生命周期
2018/08/14 Javascript
vue中的计算属性实例详解
2018/09/19 Javascript
详解ES6 系列之异步处理实战
2018/10/26 Javascript
浅谈Javascript常用正则表达式应用
2019/03/08 Javascript
微信小程序云开发之模拟后台增删改查
2019/05/16 Javascript
使用webpack搭建vue项目及注意事项
2019/06/10 Javascript
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
在Python程序中进行文件读取和写入操作的教程
2015/04/28 Python
Python实现周期性抓取网页内容的方法
2015/11/04 Python
python实现电子产品商店
2019/02/26 Python
Python3 实现串口两进程同时读写
2019/06/12 Python
Opencv图像处理:如何判断图片里某个颜色值占的比例
2020/06/03 Python
matplotlib之多边形选区(PolygonSelector)的使用
2021/02/24 Python
css3 伪类选择器快速复习小结
2019/09/10 HTML / CSS
俄罗斯优惠券网站:BIGLION
2017/05/21 全球购物
会计学专业学生的求职信范文
2014/01/27 职场文书
委托书范文
2014/04/02 职场文书
选秀节目策划方案
2014/06/06 职场文书
七个Python必备的GUI库
2021/04/27 Python
如何用JavaScript检测当前浏览器是无头浏览器
2021/04/27 Javascript
mysql数据库隔离级别详解
2022/06/16 MySQL