Python内置函数之filter map reduce介绍

 更新时间:2014年11月30日 21:53:58   投稿:mdxy-dxy  
Python内置了一些非常有趣、有用的函数,如:filter、map、reduce,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,reduce用于归并. 是Python列表方法的三架马车
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

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文件选择对话框的操作方法

    python文件选择对话框的操作方法

    这篇文章主要介绍了python文件选择对话框的操作方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • python Jieba分词处理详解【模式,词库的添加、删除,自定义词库,失败处理等】

    python Jieba分词处理详解【模式,词库的添加、删除,自定义词库,失败处理等】

    这篇文章主要介绍了python Jieba分词处理,结合实例形式详细分析了python 使用jieba分词的模式,词库的添加、删除,自定义词库,失败处理等相关操作技巧,需要的朋友可以参考下
    2023-07-07
  • python实现批量nii文件转换为png图像

    python实现批量nii文件转换为png图像

    这篇文章主要介绍了python实现批量nii文件转换为png图像,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • 深入理解python中实例方法的第一个参数self

    深入理解python中实例方法的第一个参数self

    在Python中,self?是类的实例方法的一个参数,代表类的实例对象本身,在本篇文章中,我们将深入探讨?self?的工作原理以及它在Python编程中的重要性,需要的可以参考下
    2023-09-09
  • python读取文本绘制动态速度曲线

    python读取文本绘制动态速度曲线

    这篇文章主要为大家详细介绍了python读取文本绘制动态速度曲线,多图同步显示,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • python 中关于pycharm选择运行环境的问题

    python 中关于pycharm选择运行环境的问题

    这篇文章主要介绍了python 中关于pycharm选择运行环境的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • 通过实例浅析Python对比C语言的编程思想差异

    通过实例浅析Python对比C语言的编程思想差异

    这篇文章主要介绍了通过实例浅析Python对比C语言的编程思想差异,作为面向对象和面向过程的编程语言代表,二者的对比可谓经典,需要的朋友可以参考下
    2015-08-08
  • python实现随机梯度下降法

    python实现随机梯度下降法

    这篇文章主要为大家详细介绍了python实现随机梯度下降法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • Anaconda安装OpenCV的方法图文教程

    Anaconda安装OpenCV的方法图文教程

    在Anaconda里安装OpenCV的方法有很多,下面这篇文章主要给大家介绍了关于Anaconda安装OpenCV的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • python 实现波浪滤镜特效

    python 实现波浪滤镜特效

    这篇文章主要介绍了python 实现波浪滤镜特效的方法,帮助大家更好的利用python处理图片,感兴趣的朋友可以了解下
    2020-12-12

最新评论

?


http://www.vxiaotou.com