lambda语句的理解
lambda需要一个参数,后面仅跟单个表达式作为函数体。
ex:
#!/usr/bin/python
#Filename:test.py
def repeater(n):
return lambda s:s*n
twice = repeater(2)
print twice('hello') //返回hellohello
print twice(3) //返回6
python中filter,map和reduce理解
filter方法调用:
resultlist = filter(func,seq)
@param func:可调用对象,接受seq中元素作为参数;
@param seq:可跌代对象,每个元素在func中执行一次;
resultlist是seq元素的列表子集,func只是告诉filter怎么选择元素构成返回列表;
map方法调用:
resultlist = map(func,seq)
@param func:可调用对象,接受seq中元素作为参数;
@param seq:可跌代对象;
resultlist是把func结果作为返回列表;
reduce方法调用:
reduce(func,seq[,init])
@param func:接受两个参数的可调用对象;
@param seq:可跌代对象;
@param init:初始值
作用是对seq中从左至右的每两个元素,调用func,然后将结果传递到下次调用。
ex:
a=[1,2,3,4]
resultlist1 = filter(lambda x:x>3,a) //返回结果是[4]
resultlist2 = map(lambda x:x>3,a) //返回结果[False,False,False,True]
reduce(lambda x,y:x+y,a) //返回结果10
reduce(lambda x,y:x+y,a,1) //返回结果11