Python中的map\filter\reduce函式
阿新 • • 發佈:2020-08-11
map
功能:對序列中的每一項進行處理後返回一個相同長度的序列(迭代器,需要List轉換)
具體過程:一個序列對應一個引數,依次對序列中的每一項進行處理,處理函式結果為表示式
arr = [1,2,3] m = map(lambda x:x+1, arr) print(list(m))
arr1 = [1,2,3] arr2 = [4,5,6] m = map(lambda x,y:x+y, arr1,arr2) print(list(m))
filter
功能:對序列中的每一項進行篩選後返回結果序列(迭代器,需要List轉換)
具體過程:一個序列對應一個引數,依次對序列中的每一項進行處理,處理函式結果為布林值
arr = [1,9,2,8,3,7,4,6] f = filter(lambda x:x<5, arr) print(list(f))
arr = ['a',1,'b',2,'c',3] f = filter(lambda x:True if type(x)==str else False, arr) print(list(f))
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)
from functools import reduce arr = ['a','b','c','d'] r = reduce(lambda x,y:x+y, arr) print(r)