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 with的用法
Aug 22 Python
简单介绍Python中的RSS处理
Apr 13 Python
python网络编程之文件下载实例分析
May 20 Python
Python数据类型详解(一)字符串
May 08 Python
Python入门学习指南分享
Apr 11 Python
解决pandas .to_excel不覆盖已有sheet的问题
Dec 10 Python
Python修改文件往指定行插入内容的实例
Jan 30 Python
python多线程同步实例教程
Aug 11 Python
Python socket 套接字实现通信详解
Aug 27 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
Jan 04 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
Jun 24 Python
详解pycharm2020.1.1专业版安装指南(推荐)
Aug 07 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
星际原理概述
2020/03/04 星际争霸
PHP文件上传原理简单分析
2011/05/29 PHP
PHP函数addslashes和mysql_real_escape_string的区别
2014/04/22 PHP
destoon设置自定义搜索的方法
2014/06/21 PHP
PHP获取当前相对于域名目录的方法
2015/06/26 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
PHP实现财务审核通过后返现金额到客户的功能
2019/07/04 PHP
js日期相关函数总结分享
2013/10/15 Javascript
js ajaxfileupload.js上传报错的解决方法
2016/05/05 Javascript
Node.js connect ECONNREFUSED错误解决办法
2016/09/15 Javascript
JavaScript树的深度优先遍历和广度优先遍历算法示例
2018/07/30 Javascript
微信小程序视图容器(swiper)组件创建轮播图
2020/06/19 Javascript
Vue-component全局注册实例
2018/09/06 Javascript
JavaScript&quot;模拟事件&quot;的注意要点详解
2019/02/13 Javascript
浅谈JS的原型和继承
2019/05/08 Javascript
JavaScript实现的开关灯泡点击切换特效示例
2019/07/08 Javascript
小程序实现简单语音聊天的示例代码
2020/07/24 Javascript
vue在图片上传的时候压缩图片
2020/11/18 Vue.js
[01:06]DOTA2小知识课堂 Ep.01 TP出门不要忘记帮队友灌瓶哦
2019/12/05 DOTA
微信跳一跳python辅助软件思路及图像识别源码解析
2018/01/04 Python
python用户评论标签匹配的解决方法
2018/05/31 Python
20行python代码实现人脸识别
2019/05/05 Python
详解python路径拼接os.path.join()函数的用法
2019/10/09 Python
Python转换字典成为对象,可以用&quot;.&quot;方式访问对象属性实例
2020/05/11 Python
pycharm设置默认的UTF-8编码模式的方法详解
2020/06/01 Python
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
Wolford法国官网:奥地利奢侈内衣品牌
2020/08/11 全球购物
餐饮营销方案
2014/02/23 职场文书
党课知识竞赛主持词
2014/04/01 职场文书
教师党员个人整改措施材料
2014/09/16 职场文书
2014年药剂科工作总结
2014/11/26 职场文书
2014年出纳工作总结与计划
2014/12/09 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
node.js如何自定义实现一个EventEmitter
2021/07/16 Javascript
CSS 实现磨砂玻璃(毛玻璃)效果样式
2023/05/21 HTML / CSS