当前位置: 首页 > 编程笔记 >

Python内置函数之filter map reduce介绍

梁研
2023-03-14
本文向大家介绍Python内置函数之filter map reduce介绍,包括了Python内置函数之filter map reduce介绍的使用技巧和注意事项,需要的朋友参考一下

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 max内置函数详细介绍,包括了Python max内置函数详细介绍的使用技巧和注意事项,需要的朋友参考一下 Python max内置函数 max(iterable, *[, key, default]) max(arg1, arg2, *args[, key]) Return the largest item in an iterable or the largest

  • 本文向大家介绍python内置函数:lambda、map、filter简单介绍,包括了python内置函数:lambda、map、filter简单介绍的使用技巧和注意事项,需要的朋友参考一下 lambda lambda可以理解为一种小函数,但是它是一个表达式,而不是一个语句,所以在def不允许出现的地方仍然可以使用lambda函数,例如list里。但是lambda内只可以执行一个表达式。  一个l

  • Python 解释器自带的函数叫做内置函数,这些函数可以直接使用,不需要导入某个模块。 如果你熟悉 Shell 编程,了解什么是 Shell 内置命令,那么你也很容易理解什么是 Python 内置函数,它们的概念是类似的。 将使用频繁的代码段封装起来,并给它起一个名字,以后使用的时候只要知道名字就可以,这就是函数。函数就是一段封装好的、可以重复使用的代码,它使得我们的程序更加模块化,不需要编写大量

  • 内置函数 abs() divmod() input() open() staticmethod() all() enumerate() int() ord() str() any() eval() isinstance() pow() sum() basestring() execfile() issubclass() print() super() bin() file() iter() pro

  • 本文向大家介绍python中的内置函数getattr()介绍及示例,包括了python中的内置函数getattr()介绍及示例的使用技巧和注意事项,需要的朋友参考一下 在python的官方文档中:getattr()的解释如下: 根据属性名称返回对象值。如果“name”是对对象属性的名称,则返回对应属性的值。  这段代码执行的结果是: 第一个函数tryattribute0()非常好理解,就如同定义里

  • 问题内容: Windows XP,Python 2.5: Google App Engine(http://shell.appspot.com/): 这是为什么?我如何拥有一个散列函数,以便在不同平台(Windows,Linux,Mac)上给我相同的结果? 问题答案: 使用hashlib作为 被设计用于: 在字典查找期间快速比较字典键 因此,不保证在所有Python实现中都一样。