python中filter,reduce,map的用法

时间:2022-04-24 03:00:32

filter的用法:

操作表list内嵌函数
'filter' 需要一个函数与一个list
它用这个函数来决定哪个项应该被放入过滤结果队列中
遍历list中的每一个值,输入到这个函数中
如果这个函数返回True, 那么值就放到过滤结果队列中去
如果这个函数返回 False,那么这个值就会被跳过

def pick_num(x):

if x%3==0:

  return x

r=[2,4,6,8,10]

result=list(filter(pick_num,r))

 

 

reduce用法:

操作表list内嵌函数
'reduce' 需要一个函数与一个list作为参数
它把该list最终压缩成一个值
函数必须有两个参数作为输入,返回一个值作为输出
‘reduce’ 首先对这个list的头两个元素应用这个函数
然后是对返回值以及list的下一个元素继续应用该函数
以此类推,直到整个list中的值都被遍历到

from functools import reduce

def sum(x, y): return x+y

r=list(range(10))

result=reduce(sum,r)

print result

 

map用法:

操作表list的内嵌函数
'map'需要一个函数与一个list作为参数
这个函数限定为只有一个参数输入一个返回输出
这个函数要依次作用到这个list上的每一个元素
结果作为一个表list返回

 

def AddSelf(x):return x+1

r=list(range(10))

result=map(AddSelf,r)

print result