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中的多线程实例教程
Aug 27 Python
python实现自动登录人人网并访问最近来访者实例
Sep 26 Python
Python类的定义、继承及类对象使用方法简明教程
May 08 Python
python使用logging模块发送邮件代码示例
Jan 18 Python
对python list 遍历删除的正确方法详解
Jun 29 Python
由Python编写的MySQL管理工具代码实例
Apr 09 Python
Python 合并多个TXT文件并统计词频的实现
Aug 23 Python
Python turtle画图库&amp;&amp;画姓名实例
Jan 19 Python
Django 博客实现简单的全文搜索的示例代码
Feb 17 Python
Python Dataframe常见索引方式详解
May 27 Python
Python获取浏览器窗口句柄过程解析
Jul 25 Python
python3代码输出嵌套式对象实例详解
Dec 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
excellent!――ASCII Art(由目标图象生成ascii)
2007/02/20 PHP
PHP原生函数一定好吗?
2014/12/08 PHP
CI分页类首页、尾页不显示的解决方法
2016/03/28 PHP
Laravel日志用法详解
2016/10/09 PHP
弹出广告特效(一个IP只弹出一次)的代码
2007/07/27 Javascript
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
IE6-8中Date不支持toISOString的修复方法
2014/05/04 Javascript
js对字符的验证方法汇总
2015/02/04 Javascript
JavaScript实现动态删除列表框值的方法
2015/08/12 Javascript
详解JavaScript 中的 replace 方法
2016/01/01 Javascript
JS实现点击表头表格自动排序(含数字、字符串、日期)
2017/01/22 Javascript
JavaScript中的一些隐式转换和总结(推荐)
2017/12/22 Javascript
JS实现字符串中去除指定子字符串方法分析
2018/05/17 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
2019/01/02 Javascript
微信小程序textarea层级过高(盖住其他元素)问题的解决办法
2019/03/04 Javascript
微信小程序如何调用新闻接口实现列表循环
2019/07/02 Javascript
微信小程序实现菜单左右联动
2020/05/19 Javascript
讲解python参数和作用域的使用
2013/11/01 Python
python操作摄像头截图实现远程监控的例子
2014/03/25 Python
Python实现以时间换空间的缓存替换算法
2016/02/19 Python
Python模糊查询本地文件夹去除文件后缀的实例(7行代码)
2017/11/09 Python
python如何拆分含有多种分隔符的字符串
2018/03/20 Python
浅谈PySpark SQL 相关知识介绍
2019/06/14 Python
Python及Pycharm安装方法图文教程
2019/08/05 Python
python+OpenCV实现车牌号码识别
2019/11/08 Python
python基于Kivy写一个图形桌面时钟程序
2021/01/28 Python
教师自我鉴定
2013/12/13 职场文书
物理系毕业生自荐书范文
2014/02/22 职场文书
个人遵守党的政治纪律情况对照检查材料思想汇报
2014/09/25 职场文书
解除劳动合同证明书模板
2014/11/20 职场文书
感谢信的格式
2015/01/21 职场文书
文员岗位职责范本
2015/04/16 职场文书
Python 线程池模块之多线程操作代码
2021/05/20 Python
浅析MongoDB之安全认证
2021/06/26 MongoDB
C#连接ORACLE出现乱码问题的解决方法
2021/10/05 Oracle
简单聊一聊SQL注入及防止SQL注入
2022/03/23 MySQL