美文网首页程序员
如何使用reduce(),filter()对数据进行求积,去除N

如何使用reduce(),filter()对数据进行求积,去除N

作者: 糖醋沼跃鱼 | 来源:发表于2020-12-15 17:46 被阅读0次

python高阶函数

reduce()函数

reduce()函数也是Python内置的一个高阶函数,reduce()函数接收的参数和map()类似,一个函数,一个list,但行为和map()不同,reduce()传入的函数必须接收两个参数,reduce()对list的每个元素反复调用函数,并返回最终值。

def prod(x, y):
    return x*y

print reduce(prod, [2, 4, 5, 7, 12])

求列表中所有数字之积

也可以使用上一篇文章,合成列表里面,我用了一个匿名函数lambda

from functools import reduce
prod = reduce(lambda, x,y:x*y, [2, 4, 5, 7, 12])

在python3中使用需要

from functools import reduce

filter()函数

filter()函数是Python内置的另一个有用的高阶函数,filter()函数接收一个函数,和一个list,这个函数的作用是对每个元素进行判断,返回True或False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新的list

这里举一个对我自己来说非常有用的例子:

删除none或者空字符串

在爬虫里总是会和搜集到储存在列表里面的信息,对于他们加一些过滤,或是异常处理是很有必要的

def is_not_empty(s):
    return s and len(s.strip()) > 0
filter(is_not_empty, ['test', None, '', 'str', '  ', 'END'])

结果:['test', 'str', 'END']

相关文章

网友评论

    本文标题:如何使用reduce(),filter()对数据进行求积,去除N

    本文链接:https://www.haomeiwen.com/subject/hphogktx.html