目录
- map
- filter
- reduce
- zip
- sortedmap
map
其中,function 参数表示要传入一个函数,其可以是内置函数、自定义函数或者 lambda 匿名函数;iterable 表示一个或多个可迭代对象,可以是列表、字符串等。
map() 函数的功能是对可迭代对象中的每个元素,都调用指定的函数,并返回一个 map 对象。
1
2
3
|
listDemo = [ 1 , 2 , 3 , 4 , 5 ]
new_list = map ( lambda x: x * 2 , listDemo)
print ( list (new_list))
|
filter
filter() 函数的功能是对 iterable 中的每个元素,都使用 function 函数判断,并返回 True 或者 False,最后将返回 True 的元素组成一个新的可遍历的集合。
1
2
3
|
listDemo = [ 1 , 2 , 3 , 4 , 5 ]
new_list = filter ( lambda x: x % 2 = = 0 , listDemo)
print ( list (new_list))
|
reduce
reduce() 函数通常用来对一个集合做一些累积操作,其基本语法格式为:
reduce(function, iterable)
1
2
3
4
|
import functools
listDemo = [ 1 , 2 , 3 , 4 , 5 ]
product = functools. reduce ( lambda x, y: x * y, listDemo)
print (product)
|
zip
1
2
3
4
5
6
7
8
9
|
>>>a = [ 1 , 2 , 3 ]
>>>b = [ 4 , 5 , 6 ]
>>>c = [ 4 , 5 , 6 , 7 , 8 ]
>>>zipped = zip (a,b) # 打包为元组的列表
[( 1 , 4 ), ( 2 , 5 ), ( 3 , 6 )]
>>> zip (a,c) # 元素个数与最短的列表一致
[( 1 , 4 ), ( 2 , 5 ), ( 3 , 6 )]
>>> zip ( * zipped) # 与 zip 相反,可理解为解压,返回二维矩阵式
[( 1 , 2 , 3 ), ( 4 , 5 , 6 )]
|
sorted
1
2
3
4
5
6
7
|
>>> L = [( 'b' , 2 ),( 'a' , 1 ),( 'c' , 3 ),( 'd' , 4 )]
>>> sorted (L, key = lambda x:x[ 1 ]) # 利用key
[( 'a' , 1 ), ( 'b' , 2 ), ( 'c' , 3 ), ( 'd' , 4 )]
>>> students = [( 'john' , 'A' , 15 ), ( 'jane' , 'B' , 12 ), ( 'dave' , 'B' , 10 )]
>>> sorted (students, key = lambda s: s[ 2 ]) # 按年龄排序
[( 'dave' , 'B' , 10 ), ( 'jane' , 'B' , 12 ), ( 'john' , 'A' , 15 )]
|
以上就是浅析python函数式编程的详细内容,更多关于python函数式编程的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/changting/p/13720264.html