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映射列表实例分析
Jan 26 Python
python3.5 email实现发送邮件功能
May 22 Python
详解python中的json和字典dict
Jun 22 Python
Python Socket编程之多线程聊天室
Jul 28 Python
python面向对象入门教程之从代码复用开始(一)
Dec 11 Python
Python如何筛选序列中的元素的方法实现
Jul 15 Python
python爬虫项目设置一个中断重连的程序的实现
Jul 26 Python
Python3常见函数range()用法详解
Dec 30 Python
tensorflow 实现打印pb模型的所有节点
Jan 23 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
Feb 25 Python
详解python UDP 编程
Aug 24 Python
python 解决pycharm运行py文件只有unittest选项的问题
Sep 01 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
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
2011/12/19 PHP
php 获取页面中指定内容的实现类
2014/01/23 PHP
php中cookie实现二级域名可访问操作的方法
2014/11/11 PHP
ioncube_loader_win_5.2.dll的错误解决方法
2015/01/04 PHP
PHP笛卡尔积实现算法示例
2018/07/30 PHP
向大师们学习Javascript(视频与PPT)
2009/12/27 Javascript
javaScript call 函数的用法说明
2010/04/09 Javascript
JavaScript SetInterval与setTimeout使用方法详解
2013/11/15 Javascript
javascript 数字格式化输出的实现代码
2013/12/10 Javascript
判断文档离浏览器顶部的距离的方法
2014/01/08 Javascript
jquery中$each()方法的使用指南
2015/04/30 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
2015/12/04 Javascript
基于jQuery实现点击列表加载更多效果
2016/05/31 Javascript
js利用clipboardData实现截屏粘贴功能
2016/10/12 Javascript
微信小程序 wx.uploadFile无法上传解决办法
2016/12/14 Javascript
win系统下nodejs环境安装配置
2017/05/04 NodeJs
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
2018/09/25 Javascript
vue+element搭建后台小总结 el-dropdown下拉功能
2020/04/10 Javascript
Python编程实现生成特定范围内不重复多个随机数的2种方法
2017/04/14 Python
Python面向对象进阶学习
2019/05/21 Python
TensorFlow tf.nn.conv2d实现卷积的方式
2020/01/03 Python
Python3使用xlrd、xlwt处理Excel方法数据
2020/02/28 Python
OpenCV 表盘指针自动读数的示例代码
2020/04/10 Python
PyQt5-QDateEdit的简单使用操作
2020/07/12 Python
pycharm 配置svn的图文教程(手把手教你)
2021/01/15 Python
Nike加拿大官网:Nike.com (CA)
2019/04/09 全球购物
ORLY官网:美国专业美甲一线品牌
2019/12/11 全球购物
毕业生的自我鉴定
2013/10/29 职场文书
副总经理岗位职责
2014/03/16 职场文书
亮化工程实施方案
2014/03/17 职场文书
环保倡议书怎么写
2014/05/16 职场文书
廉政教育的心得体会
2014/09/01 职场文书
乡镇干部先进性教育活动个人整改措施
2014/09/16 职场文书
护士自荐信怎么写
2015/03/06 职场文书
小学安全工作总结2015
2015/05/18 职场文书
SQL Server内存机制浅探
2022/04/06 SQL Server