1. lambda
1. 基本形式:
函数名=lambda args1,args2,...,argsn:expression
与C语言中的宏定义类似
2. Code
isodd = lambda x: x%2==0
pow2 = lambda x: x<<1
2. filter
1. 基本形式
ans=filter(function,array)相当于一个过滤函数,这里的function的返回值为布尔型,array中满足function的元素留下。
2. Code
array=[1,2,3,4,5,6,7]
isodd = lambda x: x%2==0
ans=filter(isodd,array)
print ans
3. 函数原型
def filter(function,array):
ans=[]
for each in array:
if function(each) is True:
ans.append(each)
return ans
3. map
1. 基本形式
map(function,args),对序列args进行function操作,得到结果序列。
2. Code
array=[1,2,3,4,5,6,7]
pow2 = lambda x: x<<1
ans1=map(pow2,array)
print ans1
3. 函数原型
def map(function,array):
ans=[]
for each in array:
ans.append(fun(each))
return ans
4. reduce
1. 函数原型
reduce(function,array,initval) function是一个带有两个参数的函数,array是待处理的序列,initval是初始值
2. Code
array=[1,2,3,4,5,6,7]
add = lambda x,y: x+y
ans2= reduce(add,array,0)
print ans
3. 函数原型
def reduce(function,array,initval):
tmp = list(array)
if initval is None:
ans = list.pop(0) #取列表的第一个元素,并删除
else:
ans =initval
for each in tmp:
ans = function(ans,each)
return ans; ans2= reduce(add,array,0)
5. apply
1. 基本形式
apply(function,(function的参数))是用来替代function的,
2. Code
add = lambda x,y: x+y
apply(add,(1,2))