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实现的可以拷贝或剪切一个文件列表中的所有文件
Apr 30 Python
ptyhon实现sitemap生成示例
Mar 30 Python
跟老齐学Python之for循环语句
Oct 02 Python
收集的几个Python小技巧分享
Nov 22 Python
利用Python命令行传递实例化对象的方法
Nov 02 Python
Python解惑之True和False详解
Apr 24 Python
对python实现二维函数高次拟合的示例详解
Dec 29 Python
python实现在函数中修改变量值的方法
Jul 16 Python
Flask框架搭建虚拟环境的步骤分析
Dec 21 Python
解决python replace函数替换无效问题
Jan 18 Python
在pytorch中实现只让指定变量向后传播梯度
Feb 29 Python
利用Python脚本写端口扫描器socket,python-nmap
Jul 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
PHP实现表单提交时去除斜杠的方法
2016/12/26 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
JavaScript回调(callback)函数概念自我理解及示例
2013/07/04 Javascript
基于iframe实现类似于ajax的页面无刷新
2014/05/31 Javascript
javascript的BOM汇总
2015/07/16 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
2015/09/04 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
jquery attr()设置和获取属性值实例教程
2016/09/25 Javascript
js时间控件只显示年月
2017/01/08 Javascript
axios学习教程全攻略
2017/03/26 Javascript
JS实现留言板功能
2017/06/17 Javascript
浅谈js数组splice删除某个元素爬坑
2020/10/14 Javascript
vue+swiper实现左右滑动的测试题功能
2020/10/30 Javascript
[01:14]辉夜杯战队访谈宣传片—NEWBEE.Y
2015/12/26 DOTA
Python内置的字符串处理函数详细整理(覆盖日常所用)
2014/08/19 Python
Python处理RSS、ATOM模块FEEDPARSER介绍
2015/02/18 Python
Python中动态获取对象的属性和方法的教程
2015/04/09 Python
KMP算法精解及其Python版的代码示例
2016/06/01 Python
最大K个数问题的Python版解法总结
2016/06/16 Python
pandas DataFrame数据转为list的方法
2018/04/11 Python
Flask框架web开发之零基础入门
2018/12/10 Python
PyQt5 QTableView设置某一列不可编辑的方法
2019/06/25 Python
Python3实现二叉树的最大深度
2019/09/30 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
2020/05/26 Python
python实现文件+参数发送request的实例代码
2021/01/05 Python
canvas画布实现手写签名效果的示例代码
2019/04/23 HTML / CSS
西海岸男士和男童服装:Johnnie-O
2018/03/15 全球购物
美国唇部护理专家:Sara Happ
2019/06/19 全球购物
化工专业推荐信范文
2013/11/28 职场文书
CAD制图人员的自荐信
2014/02/07 职场文书
租房协议书范例
2014/10/14 职场文书
雷锋的故事观后感
2015/06/10 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书
深入理解redis中multi与pipeline
2021/06/02 Redis
在Docker容器中部署SQL Server
2022/04/11 Servers
Java存储没有重复元素的数组
2022/04/29 Java/Android