每天进步一点点 --python学习1

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

你可能感兴趣的:(每天进步一点点)