技术标签: 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))
第一题:世纪末的星期题目描述曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。还有人称今后的某个世纪末的12月31日,如果是星期一则会…有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!!于是,“谣言制造商”又修改为星期日…1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)?...
嗨嗨,今天教你们用一篇文章搞定Python常用的十进制、16进制、字符串、字节串之间的转换进行协议解析时,总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等
近日使用cmd时总是出现无法cd到指定目录的情况如下图所示 输入cd命令后依旧停留在原始路径解决方法:输入 cd D:\CE-5\Training_Sanple\neg 后输入 D: 然后回车,就到了想要的目录下面了。原因不详。。很弱的问题但是解决花了好久。。
一、MySQL的存储引擎 1 、存储引擎的类型:有MyISAM、InnoDB 、Memory、CSV等9种 2、 MyISAM与InnoDB类型主要区别 适用场合 使用MyISAM: 不需事务,空间小,以查询访问为主 使用InnoDB: 多删除、更新操作,安全性高,事务处理及并发控制 查看当前默认存储引擎语法:SHOW VARIA...
【华为OD机试真题 Python实现】2023年1、2月高频机试题 两个专栏现在有200+博文,订阅也突破1k,非常感谢各位博友的支持,后面还会继续更新,希望对你有帮助!
fft的实现以及代码已经展现在verilog实现8点FFT运算中了。利用fft的代码即可实现ifft的代码。主要操作就是将输入的部分取共轭,然后输出结果取共轭再除8(因为是8点fft所以结果除以8)ifft_8.v:`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // // Create
驱动jar包获取方式: 1) 通过maven自动获得; 2) 到maven仓库去搜索下载:http://search.maven.org/ 3) 到各数据库官网去下载。 MySQL驱动源码下载: http://repo1.maven.org/maven2/mys...
主题示例1:Arduino IDE配置【ESP8266】无线终端模式(Station)无线终端模式(Station, 也称 ST)相当于一个设备,可以连接路由器的WiFi。功能如下图所示。开发环境IDE开发板编程这里要连接的WiFi是"fly",密码"12345678"/*ESP8266开发板无线终端模式连接WiFi本示例程序用于演示如何使用ESP8266开发板无线终端模式连接WiFi*/ #include <ESP8266WiFi.h> // 本
转载自:https://blog.csdn.net/weixin_41471128/article/details/80031282一、解释shell命令1、gcc hello.c -o hello:将hello.c文件编译生成可执行文件hello2、./hello:执行当前文件夹下的hello文件3、gdb hello:用gdb调试hello程序二、解释程序中指定的句子的功能1、$(CC) $^ -o $@将所有不重复的依赖文件编译编译成可执行文件,以目标文件的完整名称命名2、fd
目录1.工作说明2.系数计算3.数据选取4.变量说明5.仿真结果1)波形2)Transcript6.Matlab 验证1.工作说明1.采用硬件RTL代码实现串行64点FFT算法具体实现方法不做硬性要求,可以自行定义FFT输入I/Q数据为8bits有符号数,输出I/Q数据20bits。数据存储模块可以用verilog二维数组建模2.FFT基本公式如下3.给出算法结构...
前面的两篇文章都是写的关于基于图像的示例,这一篇文章来写一下基于地理位置的示例。基于地理位置也很好理解,就是通过经纬度来确定目标点,然后在目标点显示你想要的的东西。首先还是直接放一下官方的示例代码,在代码里面我会标记出来一些解释。<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content
一起进阶学习JAVA:Spring boot 应用什么是Spring bootSpring的优缺点Spring的优点Spring的缺点Spring boot如何解决上述Spring存在的相关问题约定优于配置(Convention over Configuration)起步依赖自动配置Spring boot的特点什么是Spring bootSpring boot是一个轻量级框架,可以简化Spring应用的搭建和开发。Spring的优缺点Spring是一个成熟而优秀的开源框架,既然已经是一个成熟而优秀的,