一、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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?