1. 程式人生 > 實用技巧 >Python中的map\filter\reduce函式

Python中的map\filter\reduce函式

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)