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 相关文章推荐
Python2.x版本中maketrans()方法的使用介绍
May 19 Python
Python制作简单的网页爬虫
Nov 22 Python
python中闭包Closure函数作为返回值的方法示例
Dec 17 Python
在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
Jan 30 Python
利用Python yagmail三行代码实现发送邮件
May 11 Python
Python反射和内置方法重写操作详解
Aug 27 Python
python顺序执行多个py文件的方法
Jun 29 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
Jul 17 Python
python matplotlib 画dataframe的时间序列图实例
Nov 20 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
Sep 01 Python
pandas DataFrame.shift()函数的具体使用
May 24 Python
Python编写nmap扫描工具
Jul 21 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中替换换行符的几种方法小结
2012/10/15 PHP
php读取txt文件并将数据插入到数据库
2016/02/23 PHP
基于PHP实现商品成交时发送短信功能
2016/05/11 PHP
PHP利用百度ai实现文本和图片审核
2019/05/08 PHP
JS面向对象编程 for Cookie
2010/09/19 Javascript
Javascript中获取出错代码所在文件及行数的代码
2010/09/23 Javascript
javascript两种function的定义介绍及区别说明
2013/05/02 Javascript
js检测输入内容全为空格的方法
2014/05/03 Javascript
javascript的push使用指南
2014/12/05 Javascript
Javascript核心读书有感之语句
2015/02/11 Javascript
Node.js实现Excel转JSON
2015/04/24 Javascript
jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
2016/02/25 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
2016/08/08 Javascript
Angular Module声明和获取重载实例代码
2016/09/14 Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
2016/11/26 Javascript
Ionic+AngularJS实现登录和注册带验证功能
2017/02/09 Javascript
Vue.js开发环境快速搭建教程
2017/03/17 Javascript
JavaScript运动框架 多物体任意值运动(三)
2017/05/17 Javascript
详解vue项目接入微信JSSDK的坑
2018/12/14 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
Javascript实现打鼓效果
2021/01/29 Javascript
[06:01]刀塔次级联赛top10第一期
2014/11/07 DOTA
Python配置文件解析模块ConfigParser使用实例
2015/04/13 Python
利用python解决mysql视图导入导出依赖的问题
2017/12/17 Python
Python实现的字典值比较功能示例
2018/01/08 Python
python numpy 部分排序 寻找最大的前几个数的方法
2018/06/27 Python
Python递归函数实例讲解
2019/02/27 Python
Python supervisor强大的进程管理工具的使用
2019/04/24 Python
Flask框架模板继承实现方法分析
2019/07/31 Python
Python字符串查找基本操作代码案例
2020/10/27 Python
英国最大的自有市场,比亚马逊便宜:Flubit
2019/03/19 全球购物
小学二年级评语
2014/04/21 职场文书
8和9的加减法教学反思
2014/05/01 职场文书
八一建军节演讲稿
2014/09/10 职场文书
关于晚自习早退的检讨书
2014/09/13 职场文书