码迷,mamicode.com
首页 > 移动开发 > 详细

[转]Python 中的 lambda,filter,map,reduce,apply

时间:2016-09-23 16:26:36      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:

1. lambda

1. 基本形式:

 =lambdargs1,args2,...,argsn:expression
与C语言中的宏定义类似

2. Code

1 isodd = lambda x: x%2==0
2 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==0
3 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<<1
3 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+y
3 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+y
2 apply(add,(1,2))

 

[转]Python 中的 lambda,filter,map,reduce,apply

标签:

原文地址:http://www.cnblogs.com/leileiyiyi/p/5900199.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!