python函数工具之filter,map及reduce

filter, map, reduce都是python针对序列(包括tuple, str, list )的内置方法。


filter函数:对序列执行过滤操作

 

filter(function or None, sequence) -> list, tuple, or string


function函数是一个布尔函数,filter()函数调用这个函数一次作用于seq中的每一个元素,筛选出符合条件的元素,并返回filter可迭代对象。

示例:

def isOdd(x):
    return x & 0x1 == 1

l1 = range(0, 11)
l2 = list(filter(isOdd, l1))
print(l2)

上面的例子用于过滤掉偶数值,保留序列l1中的奇数值,输出结果为[1,3,5,7,9].

 

map函数:根据函数对序列做映射

map(function, sequence[, sequence, ...]) -> list


map将传入的function函数依次作用到序列sequence的每个元素,并把结果作为新的list返回。

示例:

l1 = range(0, 11)
l2 = list(map(lambda x: x ** 2, l1))
print(l2)


上面的例子将列表l1中的元素逐个映射为其平方值,输出结果为[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100].

reduce函数:根据函数对序列做累积运算

 

reduce(function, sequence[]) -> value


function函数有两个参数,reduce函数依次从传入的sequence中取一个元素,和上一次调用function的结果作为参数再次调用function,直到运算完成返回最后的结果。 

示例:

from functools import reduce

l1 = range(0, 101)
l2 = reduce(lambda x, y: x + y, l1)
print(l2)


reduce函数位于python内置的functools模块,上面的例子利用reduce函数对0-100求和,输出结果为5050. 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值