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连接远程ftp服务器并列出目录下文件的方法
Apr 01 Python
Python使用pylab库实现绘制直方图功能示例
Jun 01 Python
python 返回列表中某个值的索引方法
Nov 07 Python
django模板加载静态文件的方法步骤
Mar 01 Python
Softmax函数原理及Python实现过程解析
May 22 Python
pyecharts在数据可视化中的应用详解
Jun 08 Python
python利用os模块编写文件复制功能——copy()函数用法
Jul 13 Python
Python执行时间的几种计算方法
Jul 31 Python
python 获取字典键值对的实现
Nov 12 Python
python的setattr函数实例用法
Dec 16 Python
PyQt 如何创建自定义QWidget
Mar 24 Python
Python代码风格与编程习惯重要吗?
Jun 03 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生成缩略图的类代码
2008/10/02 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
2016/01/08 PHP
PHP Header失效的原因分析及解决方法
2016/11/16 PHP
javascript入门·动态的时钟,显示完整的一些方法,新年倒计时
2007/10/01 Javascript
从父页面读取和操作iframe中内容方法
2009/07/25 Javascript
Jqyery中同等与js中windows.onload的应用
2011/05/10 Javascript
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
利用js实现选项卡的特别效果的实例
2013/03/03 Javascript
JQuery事件e参数的方法preventDefault()取消默认行为
2013/09/26 Javascript
JQuery中DOM事件冒泡实例分析
2015/06/13 Javascript
JavaScript程序中实现继承特性的方式总结
2016/06/24 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
2017/05/08 jQuery
利用vue+elementUI实现部分引入组件的方法详解
2017/11/22 Javascript
vue中如何让子组件修改父组件数据
2018/06/14 Javascript
arctext.js实现文字平滑弯曲弧形效果的插件
2019/05/13 Javascript
JavaScript ES6 Class类实现原理详解
2020/05/08 Javascript
JS sort排序详细使用方法示例解析
2020/09/27 Javascript
python调用机器喇叭发出蜂鸣声(Beep)的方法
2015/03/23 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
2017/05/24 Python
pandas 将list切分后存入DataFrame中的实例
2018/07/03 Python
Python基于mysql实现学生管理系统
2019/02/21 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
2019/05/13 Python
python binascii 进制转换实例
2019/06/12 Python
python爬虫的一个常见简单js反爬详解
2019/07/09 Python
Python 保持登录状态进行接口测试的方法示例
2019/08/06 Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
2019/10/12 Python
解决python3插入mysql时内容带有引号的问题
2020/03/02 Python
pip install 使用国内镜像的方法示例
2020/04/03 Python
python中pathlib模块的基本用法与总结
2020/08/17 Python
Python的scikit-image模块实例讲解
2020/12/30 Python
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
2016/08/18 面试题
高中班主任评语大全
2014/04/25 职场文书
大学生工作自荐书
2014/06/16 职场文书
违反单位工作制度检讨书
2014/10/25 职场文书
表彰大会新闻稿
2015/07/17 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书