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包的五个简单准则简介
Jun 15 Python
详解python while 函数及while和for的区别
Sep 07 Python
python中退出多层循环的方法
Nov 27 Python
Django之提交表单与前后端交互的方法
Jul 19 Python
python二元表达式用法
Dec 04 Python
pytorch 指定gpu训练与多gpu并行训练示例
Dec 31 Python
150行Python代码实现带界面的数独游戏
Apr 04 Python
解决Jupyter notebook中.py与.ipynb文件的import问题
Apr 21 Python
Python如何基于Tesseract实现识别文字功能
Jun 05 Python
详解Python yaml模块
Sep 23 Python
利用python查看数组中的所有元素是否相同
Jan 08 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
Jan 27 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存储过程的方法集合(推荐)
2013/07/03 PHP
PHP中spl_autoload_register()函数用法实例详解
2016/07/18 PHP
PHP 布尔值的自增与自减的实现方法
2018/05/03 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
javascript web对话框与弹出窗口
2009/02/22 Javascript
Javascript Global对象
2009/08/13 Javascript
javascript学习笔记(七) js函数介绍
2012/06/19 Javascript
JQuery操作单选按钮以及复选按钮示例
2013/09/23 Javascript
jQuery中ajax和post处理json的不同示例对比
2014/11/02 Javascript
Javascript基础教程之数据类型 (布尔型 Boolean)
2015/01/18 Javascript
JS实现判断碰撞的方法
2015/02/11 Javascript
jQuery+HTML5实现手机摇一摇换衣特效
2015/06/05 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
2015/10/22 Javascript
浅析JavaScript访问对象属性和方法及区别
2015/11/16 Javascript
Vue中父组件向子组件通信的方法
2017/07/11 Javascript
js模拟百度模糊搜索的实例
2017/08/04 Javascript
分享vue.js devtools遇到一系列问题
2017/10/24 Javascript
js判断输入框不能为空格或null值的实现方法
2018/03/02 Javascript
axios全局请求参数设置,请求及返回拦截器的方法
2018/03/05 Javascript
微信小程序使用wxParse解析html的方法示例
2019/01/17 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
2020/04/11 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
2020/06/17 Javascript
[01:48:04]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第一场 2月7日
2021/03/11 DOTA
详解python发送各类邮件的主要方法
2016/12/22 Python
python超时重新请求解决方案
2019/10/21 Python
python第三方库学习笔记
2020/02/07 Python
CSS3 边框效果
2019/11/04 HTML / CSS
移动端Html5中百度地图的点击事件
2019/01/31 HTML / CSS
先进班级集体事迹材料
2014/01/30 职场文书
物理专业大学生职业生涯规划书
2014/02/07 职场文书
银行领导班子四风对照检查材料
2014/09/27 职场文书
2014年“向国旗敬礼”网上签名寄语活动方案
2014/09/27 职场文书
2014年学生会工作总结范文
2014/11/07 职场文书
2014年后勤工作总结范文
2014/12/16 职场文书
升学宴祝酒词
2015/08/11 职场文书
七年级作文之秋游
2019/10/21 职场文书