Python内置函数之filter map reduce

Python内置函数之filter map reduce

2013-06-04

Posted by yeho

Python内置了一些非常有趣、有用的函数,如:filter、map、reduce,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,reduce用于归并. 是Python列表方法的三架马车。
1. filter函数的功能相当于过滤器。调用一个布尔函数bool_func来迭代遍历每个seq中的元素;返回一个使bool_seq返回值为true的元素的序列。

>>> N=range(10)
>>> print filter(lambda x:x>5,N)
[6, 7, 8, 9]

2. map函数func作用于给定序列的每个元素,并用一个列表来提供返回值。

>>> N1=[1,2,3]
>>> N2=[6,5,4]
>>> map(lambda x,y:x+y,N1,N2)
[7, 7, 7]
>>> map(lambda x:x+3,N1)
[4, 5, 6]

3. reduce函数,func为二元函数,将func作用于seq序列的元素,每次携带一对(先前的结果以及下一个序列的元素),连续的将现有的结果和下一个值作用在获得的随后的结果上,最后减少我们的序列为一个单一的返回值。

>>> N=range(1,101)
>>> reduce(lambda x,y:x+y,N)
5050

例1:用map和reduce实现5的阶乘相加(5!+4!+3!+2!+1!)

>>>print reduce(lambda x,y:x*y,range(1,6))
>>>print reduce(lambda x,y:x*y,range(1,5))
>>>print reduce(lambda x,y:x*y,range(1,4))
>>>print reduce(lambda x,y:x*y,range(1,3))
>>>print reduce(lambda x,y:x*y,range(1,2))
‘‘‘

结果为

120
24
6
2
1
‘‘‘

#把上一步的结果变成一个阶乘列表

>>>print map(lambda a:reduce(lambda x,y:x*y,range(1,a+1)),range(1,6))
[1, 2, 6, 24, 120]

#最后把阶乘列表相加,第一题解决

>>>print reduce(lambda m,n:m+n,map(lambda a:reduce(lambda x,y:x*y,range(1,a+1)),range(1,6)))
153

例2:用filter将100~200以内的质数过滤出来
质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数

>>>filter(lambda N:len(filter(lambda M:N%M==0,range(2,int(N**0.5)+1)))==0,range(100,201))

Python内置函数之filter map reduce

时间: 2024-08-07 02:34:47

Python内置函数之filter map reduce的相关文章

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中常用内置函数介绍(filter,map,reduce,apply,zip)

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

python之有用的3个内置函数(filter/map/reduce)

这三个内置函数还是非常有用的,在工作中用的还不少,顺手,下面一一进行介绍 1.filter 语法:filter(function,iterable) 解释:把迭代器通过function函数进行过滤出想要的数据 用法:可以设置一个迭代器,然后把相同属性的元素过滤出来,如下所示 list1 = [1,2,3,4,5,6,7,8,9,10] listTemp = filter(lambda x:x%2==0,list1) 上面的意思是过滤出偶数(即被2整除的数),其中使用了匿名函数lambda,非常简

python的高级函数- lambda,filter,map,reduce

第一: 匿名函数---lambda的理解 第二:  filter函数的理解 第三: map函数的理解 第四:reduce函数的理解 原文地址:https://www.cnblogs.com/ivyharding/p/12382330.html

Python内置函数之filter

一:filter Help on built-in function filter in module __builtin__:   filter(...)     filter(function or None, sequence) -> list, tuple, or string          Return those items of sequence for which function(item) is true.  If     function is None, return

Python内置函数(34)——filter

英文文档: filter(function, iterable) Construct an iterator from those elements of iterable for which function returns true. iterable may be either a sequence, a container which supports iteration, or an iterator. If function is None, the identity functio

[python基础知识]python内置函数map/reduce/filter

python内置函数map/reduce/filter 这三个函数用的顺手了,很cool. filter()函数:filter函数相当于过滤,调用一个bool_func(只返回bool类型数据的方法)来迭代遍历每个序列中的元素. 返回bool_func结果为true的元素的序列(注意弄清楚序列是什么意思)http://blog.csdn.net/bolike/article/details/19997465序列参考</a> 如果filter参数值为None,list参数中所有为假的元 素都将被

Python基础篇【第2篇】: Python内置函数--map/reduce/filter/sorted

Python内置函数 lambda lambda表达式相当于函数体为单个return语句的普通函数的匿名函数.请注意,lambda语法并没有使用return关键字.开发者可以在任何可以使用函数引用的位置使用lambda表达式.在开发者想要使用一个简单函数作为参数或者返回值时,使用lambda表达式是很方便的.总结:处理简单逻辑,自动返回结果 语法格式: lambda parameters: expression 就相当于 def fun(args) return expression 并且lam

Python补充--Python内置函数清单

Python内置函数 Python内置(built-in)函数随着python解释器的运行而创建.在Python的程序中,你可以随时调用这些函数,不需要定义.最常见的内置函数是: print("Hello World!") 在Python教程中,我们已经提到下面一些内置函数:基本数据类型 type()反过头来看看 dir()   help()    len()词典 len()文本文件的输入输出 open()循环设计 range()   enumerate()    zip()循环对象