標籤:
1. lambda
1. 基本形式:
函數名=lambda args1,args2,...,argsn:expression
與C語言中的宏定義類似
2. Code
1 isodd = lambda x: x%2==02 pow2 = lambda x: x<<1
2. filter
1. 基本形式
ans=filter(function,array)相當於一個過濾函數,這裡的function的傳回值為布爾型,array中滿足function的元素留下。
2. Code
1 array=[1,2,3,4,5,6,7]2 isodd = lambda x: x%2==03 ans=filter(isodd,array)4 print ans
3. 函數原型
1 def filter(function,array):2 ans=[]3 for each in array:4 if function(each) is True:5 ans.append(each)6 return ans
3. map
1. 基本形式
map(function,args),對序列args進行function操作,得到結果序列。
2. Code
1 array=[1,2,3,4,5,6,7]2 pow2 = lambda x: x<<13 ans1=map(pow2,array)4 print ans1
3. 函數原型
1 def map(function,array):2 ans=[]3 for each in array:4 ans.append(fun(each))5 return ans
4. reduce
1. 函數原型
reduce(function,array,initval) function是一個帶有兩個參數的函數,array是待處理的序列,initval是初始值
2. Code
1 array=[1,2,3,4,5,6,7]2 add = lambda x,y: x+y3 ans2= reduce(add,array,0)4 print ans
3. 函數原型
1 def reduce(function,array,initval): 2 tmp = list(array) 3 if initval is None: 4 ans = list.pop(0) #取列表的第一個元素,並刪除 5 else: 6 ans =initval 7 for each in tmp: 8 ans = function(ans,each) 9 return ans;10 11 ans2= reduce(add,array,0)
5. apply
1. 基本形式
apply(function,(function的參數))是用來替代function的,
2. Code
1 add = lambda x,y: x+y2 apply(add,(1,2))
[轉]Python 中的 lambda,filter,map,reduce,apply