Python中map\filter\reduce的用法
map
功能:对序列中的每一项进行处理后返回一个相同长度的结果序列(迭代器,需要List转换)
具体过程:一个序列对应一个参数,依次对序列中的每一项进行处理,处理函数结果需要为表达式
arr = [1,2,3] m = map(lambda x:x+1, arr) print(list(m)) # [2, 3, 4]
arr1 = [1,2,3] arr2 = [4,5,6] m = map(lambda x,y:x+y, arr1,arr2) print(list(m)) # [5, 7, 9]
filter
功能:对序列中的每一项进行筛选后返回结果序列(迭代器,需要List转换)
具体过程:一个序列对应一个参数,依次对序列中的每一项进行处理,处理函数结果需要为布尔值
arr = [1,9,2,8,3,7,4,6] f = filter(lambda x:x<5, arr) print(list(f)) # [1, 2, 3, 4]
arr = ['a',1,'b',2,'c',3] f = filter(lambda x:True if type(x)==str else False, arr) print(list(f)) # ['a', 'b', 'c']
reduce
功能:对序列进行压缩运算后返回一个结果值
具体过程:一个序列对应两个参数,z = x&y;x=z;y=next,处理函数结果需要为表达式
其他:reduce不是内置函数,需要 from functools import reduce
from functools import reduce arr = [1,2,3,4] r = reduce(lambda x,y:x+y, arr) print(r) # 10
from functools import reduce arr = ['a','b','c','d'] r = reduce(lambda x,y:x+y, arr) print(r) # abcd