Python内置函数之filter map reduce介绍

作者:mdxy-dxy 时间:2023-01-18 21:07:16 

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))'''

结果为

12024621'''

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

>>>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
0
投稿

猜你喜欢

  • MySQL数据库优化之分表分库操作实例详解

    2024-01-20 10:33:53
  • python实现屏保程序(适用于背单词)

    2021-09-26 04:24:00
  • mybatis分页插件pageHelper详解及简单实例

    2024-01-19 17:35:25
  • WEB2.0网页制作标准教程(2)什么是名字空间

    2007-11-13 13:04:00
  • 前后端常见的几种鉴权方式(小结)

    2024-05-02 17:05:54
  • python爬虫爬取网页数据并解析数据

    2022-03-03 06:25:02
  • 跟老齐学Python之编写类之四再论继承

    2022-01-08 10:18:12
  • Python操作mongodb数据库的方法详解

    2024-01-16 03:08:39
  • pyqt5的QWebEngineView 使用模板的方法

    2022-04-17 08:23:12
  • 如何实现某一页面只让特定的用户浏览?

    2010-05-19 21:44:00
  • Python反爬实战掌握酷狗音乐排行榜加密规则

    2021-05-29 08:05:57
  • 详解Python的数据库操作(pymysql)

    2024-01-15 20:49:22
  • php 使用 __call实现重载功能示例

    2023-07-13 20:10:28
  • 三层级联动的日期选择下拉框javascript源码

    2013-08-15 16:50:40
  • Python3.x和Python2.x的区别介绍

    2022-01-05 12:36:27
  • javascript DOM实用学习资料第1/3页

    2024-04-25 13:09:44
  • Tensorflow2.1实现Fashion图像分类示例详解

    2021-01-28 03:59:52
  • python 面向对象之class和封装

    2021-10-01 18:01:21
  • Python环境下安装PyGame和PyOpenGL的方法

    2021-12-09 10:14:38
  • 使用Python批量压缩tif文件操作步骤

    2021-03-27 00:04:10
  • asp之家 网络编程 m.aspxhome.com