时间:2021-05-22
一、filter()
在Python内建函数中,有一个和map()函数用法类似、却可以用来过滤元素的迭代函数,这个函数就是filter()。它的函数原型是:filter(function,itearable)
filter返回的是一个filter对象,可以通过list()或者for循环取出内容。 注意:传入的函数返回值必须是布尔类型。若是真则保留元素,假则过滤掉这元素
def is_even(x): return x%2==0a=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 #导入reduceprint(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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前言lambda是表达式,用于创建匿名函数,可以和filter、map、reduce配合使用。本文环境Python3.7。一、lambda表达式lambda只包
Python内置了一些非常有趣、有用的函数,如:filter、map、reduce,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,re
reduce()函数也是Python内置的一个高阶函数。reduce()格式:reduce(func,seq[,init()])reduce()函数即为化简函数
几个特殊的函数(待补充)python是支持多种范型的语言,可以进行所谓函数式编程,其突出体现在有这么几个函数:filter、map、reduce、lambda、
reduce()函数在python2是内置函数,从python3开始移到了functools模块。官方文档是这样介绍的reduce(...)reduce(fun