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

 

posted @ 2020-08-11 18:25  叶迩  阅读(287)  评论(0编辑  收藏  举报