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创建系统目录的方法
Mar 11 Python
PyTorch搭建一维线性回归模型(二)
May 22 Python
用django-allauth实现第三方登录的示例代码
Jun 24 Python
通过PYTHON来实现图像分割详解
Jun 26 Python
python plotly绘制直方图实例详解
Jul 22 Python
python 实现单通道转3通道
Dec 03 Python
Python3中的f-Strings增强版字符串格式化方法
Mar 04 Python
Pycharm及python安装详细教程(图解)
Jul 31 Python
详解Selenium 元素定位和WebDriver常用方法
Dec 04 Python
python基于socket模拟实现ssh远程执行命令
Dec 05 Python
python 爬取小说并下载的示例
Dec 07 Python
Python制作运行进度条的实现效果(代码运行不无聊)
Feb 24 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
一个可以删除字符串中HTML标记的PHP函数
2006/10/09 PHP
php文章内容分页并生成相应的htm静态页面代码
2010/06/07 PHP
fleaphp crud操作之findByField函数的使用方法
2011/04/23 PHP
PHP is_subclass_of函数的一个BUG和解决方法
2014/06/01 PHP
PHP url的pathinfo模式加载不同控制器的简单实现
2016/08/12 PHP
PHP小程序支付功能完整版【基于thinkPHP】
2019/03/26 PHP
js去空格技巧分别去字符串前后、左右空格
2013/10/21 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
2014/09/25 Javascript
JS简单实现动画弹出层效果
2015/05/05 Javascript
解决JS请求服务器gbk文件乱码的问题
2015/10/16 Javascript
JS转换HTML转义符的方法
2016/08/24 Javascript
浅谈JS的基础类型与引用类型
2016/09/13 Javascript
BootStrap注意事项小结(五)表单
2017/03/10 Javascript
Vue+Vux项目实践完整代码
2017/11/30 Javascript
浅谈vue-router 路由传参的方法
2017/12/27 Javascript
详解React 条件渲染
2020/07/08 Javascript
python条件和循环的使用方法
2013/11/01 Python
Python生成8位随机字符串的方法分析
2017/12/05 Python
使用pandas批量处理矢量化字符串的实例讲解
2018/07/10 Python
pytorch 转换矩阵的维数位置方法
2018/12/08 Python
python实现任意位置文件分割的实例
2018/12/14 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
Python操作SQLite数据库过程解析
2019/09/02 Python
使用Python的Turtle绘制哆啦A梦实例
2019/11/21 Python
机电一体化大学生求职信
2013/11/08 职场文书
《蓝色的树叶》教学反思
2014/02/24 职场文书
水毁工程实施方案
2014/04/01 职场文书
2014年母亲节寄语
2014/05/07 职场文书
2014大学生职业生涯规划书最新范文
2014/09/13 职场文书
先进教师个人总结
2015/02/11 职场文书
教师师德工作总结2015
2015/07/22 职场文书
《天净沙·秋思》教学反思三篇
2019/11/02 职场文书
Mysql 设置boolean类型的操作
2021/06/04 MySQL
Redis源码阅读:Redis字符串SDS详解
2021/07/15 Redis
Python图片验证码降噪和8邻域降噪
2021/08/30 Python
MySQL数据库优化之通过索引解决SQL性能问题
2022/04/10 MySQL