天天看点

python内置函数 filter、map,reduce

filter(func,itrable) 过滤

序列中的每个元素作为参数传递给函数进行判断,返回True或者False,最后将返回True的元素放到新列表中

# eg: 奇数的判断
 def is_odd(n):
     return n%2 == 1
 templist = filter(is_odd,[1,2,3,4,5,6,7,8,9,10])

 newlist = list(templist)
 print(newlist)
           

map(func,itrable)

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

def f(x):
     return x*x
 templist = map(f,[1,2,3,4,5,6])
 newlist = list(templist)
 print(newlist)
           

reduce(func,itrable[, initial])

函数会对参数序列中的元素进行累积,python3中,放置在functools模块中

from functools import reduce
 def add(x,y):
     return x+y
 res = reduce(add,[1,2,3,4,5])
 res = reduce(lambda x,y:x+y,[1,2,3,4,5])
 print(res)
           
# ex: 统计sentences = ['The Deep Learning textbook is a resource intended to help students and practitioners enter the field of machine learning in general and deep learning in particular.']中‘learning’出现的次数。
sentences = ['The Deep Learning textbook is a resource intended to help students and practitioners enter the field of machine learning in general and deep learning in particular.']
from functools import reduce
word_count = reduce(lambda a,x:a+x.count("learning"),sentences,0)
print(word_count)