Python 函數 lambda( ), map( ), reduce( ), filter( ) 舉例詳解

Python 支持用 lambda 對簡單的功能定義 “行內函數”

1.例如:

f= lambda x: x+2    #定義函數 f(x)=x+2

g= lambda x,y: x+y     #定義函數 g(x,y)=x+y

 

2.map( )函數用於逐一遍歷

a= [1,2,3]
b=map(lambda x,y: x*y,a,b)     #將a,b兩個列表的元素對應相乘,把結果返回給新列表
b=list(b)

 

3.reduce( )函數用於遞歸計算(該函數置於functools庫中 )

from functools import reduce
reduce(lamba x,y: x*y, range(1,n+1))    #range給出一個列表,元素是1~n+1這n個整數

等同於:

s=1
for i in range(1,n+1):
    s=s*i

 

4.過濾器 filter( ),篩選出列表中符合條件的元素

b=filter(lamba x:x>5 and x<8, range(10))
b=list(b)

#結果是 [6,7]

等同於:

b= [i for i in range(10) if i>5 and i<8]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章