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聚类算法之基本K均值实例详解
Nov 20 Python
Windows上使用virtualenv搭建Python+Flask开发环境
Jun 07 Python
flask框架使用orm连接数据库的方法示例
Jul 16 Python
python通过配置文件共享全局变量的实例
Jan 11 Python
python使用selenium登录QQ邮箱(附带滑动解锁)
Jan 23 Python
python实现列表的排序方法分享
Jul 01 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
Aug 26 Python
pygame实现打字游戏
Feb 19 Python
linux环境下安装python虚拟环境及注意事项
Jan 07 Python
pycharm sciview的图片另存为操作
Jun 01 Python
Python爬虫使用bs4方法实现数据解析
Aug 25 Python
Python 列表推导式需要注意的地方
Oct 23 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
阿拉伯的咖啡与水烟
2021/03/03 咖啡文化
PHP网上调查系统
2006/10/09 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
2019/05/29 PHP
PHP封装cURL工具类与应用示例
2019/07/01 PHP
PHP如何获取Cookie并实现模拟登录
2020/07/16 PHP
javascript 表格排序和表头浮动效果(扩展SortTable)
2009/04/07 Javascript
jQuery Ajax提交表单查询获得数据实例代码
2012/09/19 Javascript
jQuery获取动态生成的元素示例
2014/06/15 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
基于angularJS的表单验证指令介绍
2016/10/21 Javascript
node.js学习之交互式解释器REPL详解
2016/12/08 Javascript
一文让你彻底搞清楚javascript中的require、import与export
2017/09/24 Javascript
Angular js 实现添加用户、修改密码、敏感字、下拉菜单的综合操作方法
2017/10/24 Javascript
实例探究Python以并发方式编写高性能端口扫描器的方法
2016/06/14 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
wxPython之wx.DC绘制形状
2019/11/19 Python
Python短信轰炸的代码
2020/03/25 Python
python 连续不等式语法糖实例
2020/04/15 Python
基于PyTorch的permute和reshape/view的区别介绍
2020/06/18 Python
使用Python封装excel操作指南
2021/01/29 Python
在家更换处方镜片:Lensabl
2019/05/01 全球购物
MySQL面试题
2014/01/12 面试题
心得体会怎么写
2013/12/30 职场文书
CAD制图人员的自荐信
2014/02/07 职场文书
《尊严》教学反思
2014/02/11 职场文书
模具专业毕业生自荐书范文
2014/02/19 职场文书
公司员工体检通知
2015/04/21 职场文书
安全教育观后感
2015/06/17 职场文书
汽车修理厂管理制度
2015/08/05 职场文书
工作服管理制度范本
2015/08/06 职场文书
导游词之苏州阳澄湖
2019/11/15 职场文书
《弟子规》读后感:知廉耻、明是非、懂荣辱、辨善恶
2019/12/03 职场文书
nginx location中多个if里面proxy_pass的方法
2021/03/31 Servers
MIME类型中application/xml与text/xml的区别介绍
2022/01/18 HTML / CSS
win10键盘驱动怎么修复?Win10键盘驱动修复小技巧
2022/04/06 数码科技