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

1. lambda

1. 基本形式:

函数名=lambda args1,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))
时间: 2024-10-08 09:04:52

[转]Python 中的 lambda,filter,map,reduce,apply的相关文章

python——lambda,filter,map,reduce

lambda函数 使用方法:lambda [arg1[,arg2,arg3,...,argn]] : expression 如: add = lambda(x,y:x+y) add(1,2) 结果为1+2=3 filter函数 filter(bool_func,seq) 此函数的功能相当于过滤器,通过返回值为bool的函数bool_func来迭代遍历seq中的每个元素: 结果返回一个seq中使bool_func返回值为true的元素的序列. filter(lambda x : x%2 == 0,

Python中常用内置函数介绍(filter,map,reduce,apply,zip)

Python是一门很简洁,很优雅的语言,其很多内置函数结合起来使用,可以使用很少的代码来实现很多复杂的功能,如果同样的功能要让C/C++/Java来实现的话,可能会头大,其实Python是将复杂的数据结构隐藏在内置函数中,只要写出自己的业务逻辑Python会自动得出你想要的结果.这方面的内置函数主要有,filter,map,reduce,apply,结合匿名函数,列表解析一起使用,功能更加强大.使用内置函数最显而易见的好处是: 1. 速度快,使用内置函数,比普通的PYTHON实现,速度要快一倍左

Python经常使用内置函数介绍【filter,map,reduce,apply,zip】

Python是一门非常简洁,非常优雅的语言,其非常多内置函数结合起来使用,能够使用非常少的代码来实现非常多复杂的功能,假设相同的功能要让C/C++/Java来实现的话,可能会头大,事实上Python是将复杂的数据结构隐藏在内置函数中,用C语言来实现,所以仅仅要写出自己的业务逻辑Python会自己主动得出你想要的结果.这方面的内置函数主要有,filter,map,reduce,apply,结合匿名函数,列表解析一起使用,功能更加强大.使用内置函数最显而易见的优点是: 1. 速度快,使用内置函数,比

lambda&amp;filter&amp;map&amp;reduce函数的基本使用

'''Created on 2019-03-14Author:BinzhouProject:python中lambda filter map reduce函数使用总结''' #lambda匿名函数,格式lambda x,y:x+y 表示一个函数的参数是x,y,函数实现功能是x+y #filter[function,sequence]用于过滤序列 返回迭代器对象(包含所有满足使function返回值为True的sequence值)#python2直接返回与sequence一致的数据类型(列表,元组

python之lambda,filter,map,reduce函数

g = lambda x:x+1 看一下执行的结果: g(1) >>>2 g(2) >>>3 当然,你也可以这样使用: lambda x:x+1(1) >>>2 可以这样认为,lambda作为一个表达式,定义了一个匿名函数,上例的代码x为入口参数,x+1为函数体,用函数来表示为: def g(x): return x+1 非常容易理解,在这里lambda简化了函数定义的书写形式.是代码更为简洁,但是使用函数的定义方式更为直观,易理解. Python中,

Python学习(五)函数 —— 内置函数 lambda filter map reduce

Python 内置函数 lambda.filter.map.reduce Python 内置了一些比较特殊且实用的函数,使用这些能使你的代码简洁而易读. 下面对 Python 的 lambda.filter.map.reduce 进行初步的学习. lambda 匿名函数 lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值. lambda语句构建的其实是一个函数对象,参考下例来感受下 lambda 匿名函数: 1 def f(i): # 用户自定义返回平方数 2 retur

Python中的lambda、map、filter、reduce、zip

lambda lambda是匿名函数,也就是没有名字的函数.lambda的语法非常简单: 下面是一个lambda表达式的简单例子: 注意:我们可以把lambda表达式赋值给一个变量,然后通过这个变量来使用它. >>> my_sum = lambda x, y: x+y >>> my_sum(1, 2) 3 下图是定义lambda表达式和定义一个普通函数的对比: 注意: 使用lambda表达式并不能提高代码的运行效率,它只能让你的代码看起来简洁一些. map map()接

Python内置函数filter, map, reduce

filter.map.reduce,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,reduce用于归并. 是Python列表方法的三架马车. 1. filter函数的功能相当于过滤器. filter函数的定义: filter(function or None, sequence) -> list, tuple, or string function是一个谓词函数,接受一个参数,返回布尔值True或False. filter函数会对序列参数sequence中的每个元素调用

python内置函数filter(),map(),reduce()笔记

'''python reduce()函数:reduce()函数会对参数序列中元素进行积累. 函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给reduce中的函数 function(有两个参数)先对集合中的第 1.2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果. 语法:ruduce()reduce(function,iterable,initializer)参数:function-函数,有两个参数iterable--可迭代对象init