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计数排序和基数排序算法实例
Apr 25 Python
python基于xml parse实现解析cdatasection数据
Sep 30 Python
python爬虫 使用真实浏览器打开网页的两种方法总结
Apr 21 Python
Python生成器generator用法示例
Aug 10 Python
Python给图像添加噪声具体操作
Mar 03 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
Jun 28 Python
python分布式计算dispy的使用详解
Dec 22 Python
Python3.6 中的pyinstaller安装和使用教程
Mar 16 Python
Pandas缺失值2种处理方式代码实例
Jun 13 Python
Django封装交互接口代码
Jul 12 Python
selenium.webdriver中add_argument方法常用参数表
Apr 08 Python
python opencv人脸识别考勤系统的完整源码
Apr 26 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+MYSQL会员系统的登陆即权限判断实现代码
2011/09/23 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
Nigma vs Liquid BO3 第二场2.13
2021/03/10 DOTA
Code:findPosX 和 findPosY
2006/12/20 Javascript
Javascript学习笔记-详解in运算符
2011/09/13 Javascript
JavaScript中的ArrayBuffer详细介绍
2014/12/08 Javascript
Bootstrap Chart组件使用教程
2016/04/28 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
2016/05/17 Javascript
Node.js的Koa框架上手及MySQL操作指南
2016/06/13 Javascript
Bootstrap 模态框实例插件案例分析
2016/12/28 Javascript
JSON字符串和JSON对象相互转化实例详解
2017/01/05 Javascript
基于Node.js的WebSocket通信实现
2017/03/11 Javascript
JavaScript对象引用与赋值实例详解
2017/03/15 Javascript
Bootstrap table使用方法汇总
2017/11/17 Javascript
webpack构建的详细流程探底
2018/01/08 Javascript
详解Node.js模板引擎Jade入门
2018/01/19 Javascript
基于vue.js无缝滚动效果
2018/01/25 Javascript
Vue中的异步组件函数实现代码
2018/07/20 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
2018/09/01 Javascript
Vue表单控件绑定图文详解
2019/02/11 Javascript
如何实现双向绑定mvvm的原理实现
2019/05/28 Javascript
Vue Extends 扩展选项用法完整实例
2019/09/17 Javascript
vue中使用极验验证码的方法(附demo)
2019/12/04 Javascript
[03:03]DOTA2校园争霸赛 济南城市决赛欢乐发奖活动
2013/10/21 DOTA
Python中的下划线详解
2015/06/24 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
2019/04/05 Python
django admin.py 外键,反向查询的实例
2019/07/26 Python
Django自带日志 settings.py文件配置方法
2019/08/30 Python
详解使用django-mama-cas快速搭建CAS服务的实现
2019/10/30 Python
python 穷举指定长度的密码例子
2020/04/02 Python
Python环境管理virtualenv&amp;virtualenvwrapper的配置详解
2020/07/01 Python
会员卡清退活动总结
2014/08/27 职场文书
2014小学语文教师个人工作总结
2014/12/03 职场文书
大学生违纪检讨书范文
2015/05/07 职场文书
解决go在函数退出后子协程的退出问题
2021/04/30 Golang
如何使用注解方式实现 Redis 分布式锁
2022/07/23 Redis