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]