码迷,mamicode.com
首页 > 其他好文 > 详细

map()、reduce()、filter()总结

时间:2018-06-03 21:24:39      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:pen   处理   none   highlight   ack   obj   else   ESS   asc   

map()函数:处理序列中的每一个元素,得到的结果是一个迭代器形式,该迭代器的位置以及元素个数与原来一样可以处理任何可迭代序列

filter()函数:遍历序列中的每一个元素,判断每个元素得到的布尔值,如果是True则留下来

1 people=[{name:alex,age:1000,
2          name:alex2,age: 10000,
3          name:alex3,age: 9000,
4          name:alex4,age: 35,
5          name:alex5,age: 18,}]
6 res=(list(filter(lambda x:x[age]<=100,people)))
7 print(res)
[{‘name‘: ‘alex5‘, ‘age‘: 18}]

Process finished with exit code 0

 

 1 movie_perple = [chenchensb_,linlin,guoguo0,wowowsb_,dascsasb_]
 2 # lambda x:x.endswith(‘sb_‘)
 3 def filte(func,x):
 4     array=[]
 5     for i in x:
 6         if not func(i):
 7             array.append(i)
 8     return array
 9 # res1=filter_test(lambda x:x.endswith(‘sb_‘),movie_perple)
10 # res2=filter_test(lambda x:x.startswith(‘c‘),movie_perple)
11 print(filter(lambda x:x.endswith(sb_),movie_perple))
12 print(list(filter(lambda x:x.endswith(sb_),movie_perple)))
13 print(list(filter(lambda x:not x.endswith(sb_),movie_perple)))
14 # print(res1)
15 # print(res2)

运行结果:

1 <filter object at 0x02D8FCD0>
2 [chenchensb_, wowowsb_, dascsasb_]
3 [linlin, guoguo0]
4 
5 Process finished with exit code 0

 

reduce()函数:处理一个序列,然后把序列进行合并

1 from functools import reduce
2 num_l=[1,2,3,4,5]
3 # reduce(函数,可迭代对象,初始值)
4 print(reduce(lambda x,y:x+y,num_l,100))
 
 1 list=[1,2,3,5,6]
 2 def reduce_num(func,array,init=None):
 3     if init is None:
 4         res=list.pop(0)
 5     else:
 6         res=init
 7     for num in array:
 8         res=func(res,num)
 9     return res
10 result=reduce_num(lambda x,y:x*y,list,100)
11 print(result)

运行结果:

18000

Process finished with exit code 0

 

map()、reduce()、filter()总结

标签:pen   处理   none   highlight   ack   obj   else   ESS   asc   

原文地址:https://www.cnblogs.com/gl-gl/p/9130124.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!