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