map函数(原有数据上处理,加工)

map(func,iterable)函数接收两个参数:一个是函数,一个是iterable( 列表,字符串 等 )作用:map将传入的函数依次作用于序列的每个元素,返回一个新的序列 


example:

li = [1,2,3,4,5,6,7,8,9,0]
print(li)
def add_one(x):
    x = x+1+1
    return x
lambda x:x+1
res = map(add_one,li)
# res = map(lambda x:x+1,li)
print(res)
# for item in res:
#     print(item)
#     
v = list(res)
print(v)
#----------------------------------------------------------------------------
msg = 'shaozonglin'
lambda x:x.upper()
res = map(lambda x:x.upper(), msg)
v = list(res)
print(v)

就是把可迭代对象的每个元素,一次作为参数传递到函数中。最终将结果以列表的形式输出

filter函数(筛选)

filter(func,iterable)用于过滤,就是把可迭代对象中的每个元素,使用func进行校验,把不满足条件的过滤掉。原则上func只返回True或者flase即可,python中非0 非空 也可表示true也可。


example:

student = ['huangyinpei', 'jimengkang', 'lichen', 'zhuzhikang']
v = filter(lambda x:x.endswith('g'),student)
print(v)
a = list(v)
print(a)


reduce函数(数据合并处理,得到一个处理过的结果)

这个函数的运行是一个累积的过程。reduce(func,iterable) 就是先在可迭代的对象中取前两个元素,作为参数由func进行计算,得到一个结果;然后再在可迭代对象中取第三个元素  和 刚才的计算结果 共同作为参数传递给func 进行计算,得到一个新结果;在取第四个元素和 这个新结果再进行func运算...直到取完所有元素为止。


example:

from functools import reduce
num=[1,2,3,4,5]
v = reduce(lambda x,y:x+y,num)
a = reduce(lambda x,y:x+y,num,5)
print(v)
print(a)


总结:

map  //处理序列中的每一个元素,得到的结果是一个‘列表’,该‘列表’元素个数及位置与原来一样

filter  //遍历序列中的每一个元素,判断每一个元素得到布尔值,如果是true则留下来

reduce  //处理一个序列,然后把序列进行合并操作