python 在python中使用map,filter,reduce,lambda

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 在python中使用map,filter,reduce,lambda相关的知识,希望对你有一定的参考价值。

#1 lambda 匿名函数 
1. >>> f = lambda x:x**3  #(.*):(.*) ,\1是函数参数 \2是返回值  
2. >>> f(2)  
3. 8  
4. >>> f(3)  
5. 27  
6. >>> (lambda x,y:x+y)(10,20)  # lambda另一种形式  
7. 30  
8. >>> (lambda x:x%2 == 0)(4)   # 涉及判断,返回结果为True or False  
9. True  
10. >>> (lambda x:x%2 == 0)(3)  


#2 map(function,sequence) # 列表的函数化映射  
1. >>> def sayHello(name):  
2. ...     return 'hello' + ' ' + name  
3. ...   
4. >>> map(sayHello,['xiaot','xiaoq','lili'])  
5. ['hello xiaot', 'hello xiaoq', 'hello lili']  #列表同时操作!  
6. >>>   
7. >>> map((lambda x:x**3),range(5))  #这里也可以用lambda   
8. [0, 1, 8, 27, 64]  
9. >>> map((lambda x,y:x+y),[1,2,3],[4,5,6]) #函数多个参数时,是从不同列表取参!  
10. [5, 7, 9]  
11. >>> map(None,['a','b','c'],['d','e','f'],['g','h','i'])  #一个比较特殊的用法,多个列表对应的列组成元组  
12. [('a', 'd', 'g'), ('b', 'e', 'h'), ('c', 'f', 'i')]  
13. >>> def abc(a,b,c):  
14. ...     return a*100 + b*10 + c  
15. ...   
16. >>> list1 = [ 1, 2, 3]  
17. >>> list2 = [ 4, 5, 6]  
18. >>> list3 = [ 7, 8, 9]  
19. >>> [abc(a,b,c) for a in list1 for b in list2 for c in list3 ]  #这里的for是一种递归相当于for a in list1{for b in list2{for c in list3}}  
20. [147, 148, 149, 157, 158, 159, 167, 168, 169, 247, 248, 249, 257, 258, 259, 267, 268, 269, 347, 348, 349, 357, 358, 359, 367, 368, 369]  
21. >>> map(abc,list1,list2,list3) #map的话,就可以并行操作!  
22. [147, 258, 369]  


#3 reduce (function,sequence) # 累积操作,函数每次只操作两个参数,返回的参数再与接下去的一个参数进行操作,直到完成!  
1. >>> def sum(x,y):  
2. ...     return x+y   
3. ...   
4. >>> reduce(sum,range(10))  
5. 45  
6. >>> reduce((lambda x,y:x+y),['a','b','c','d','e','f','g'])  
7. 'abcdefg'  


#4 filter (function,sequence) # filter 过滤出函数返回值为真的列表  
1. >>> def even(x):  
2. ...     return x%2 == 0  
3. ...   
4. >>> even(2)  
5. True  
6. >>> filter(even,range(20))  #过滤偶数列表  
7. [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]  
8. >>>   
9. >>> filter((lambda x:x%2 != 0),range(20)) #过滤奇数列表  
10. [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]  

以上是关于python 在python中使用map,filter,reduce,lambda的主要内容,如果未能解决你的问题,请参考以下文章

Python编程技巧

Python编程技巧

使用两个字母python进行线性搜索

如何在python中获取时区感知午夜日期时间? [复制]

python 在python中使用map,filter,reduce,lambda

Python高级函数--filter