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 //处理一个序列,然后把序列进行合并操作
转载于:https://blog.51cto.com/10324228/2407956