python filter map区别_python中filter、map、reduce的区别

python中有一些非常有趣的函数,今天也来总结一下,不过该类的网上资料也相当多,也没多少干货,只是习惯性将一些容易遗忘的功能进行整理。

lambda 为关键字。filter,map,reduce为内置函数。

lambda:实现python中单行最小函数。

g = lambda x: x * 2

#相当于

def g(x):

return x*2

filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)。

filter(function or None, sequence) -> list, tuple, or string:入参为函数和列表/元组/字符串,返回值为item列表/元组/字符串。

map(function, sequence) :对sequence中的item依次执行function(item),将执行结果function(item)组成一个List返回。

map(function, sequence[, sequence, ...]) -> list:入参是为函数和列表/元组/字符串,返回值为function(item)列表。

reduce(function, sequence, starting_value):对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用。function接收的参数个数只能为2,先把sequence中第一个值和第二个值当参数传给function,再把function的返回值和第三个值当参数传给function,然后只返回一个结果。

reduce(function, sequence[, initial]) -> value:入参是为函数和列表/元组/字符串和初始值,返回值为数值。

用法举例:

#coding=utf-8

'''

Created on 2016-12-14

@author: Jennifer

项目:Python中filter、map、reduce、lambda 的用法

'''

#1.lambda用法,冒号之前的是入参,冒号之后的是表达式,返回的值,最简单的函数

print [(lambda x:x*x)(x)for x in range(11)]

#结果:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

print (lambda x:x*x)(3)

#结果:9

g=lambda x:x*x

print g(4)

#结果:16

#2.filter用法:返回执行结果为TRUE的入参(入参是列表字符元组)

print filter(lambda x:x*x-4,range(10))

#结果:[0, 1, 3, 4, 5, 6, 7, 8, 9]

#3.map的用法:对列表入参依次执行函数。入参为列表,有多少个列表,就应该有多少个入参。

print map(lambda x:x*x-4,range(10))

#结果:[-4, -3, 0, 5, 12, 21, 32, 45, 60, 77]

print map(lambda x,y:x*y-4,range(3),[8,9,10])

#结果:[-4, 5, 16]

#4.reduce用法:先把sequence中第一个值和第二个值当参数传给function,再把function的返回值和第三个值当参数传给fuction,最终返回一个结果值

#接收的入参个数只能为2

print reduce(lambda x,y:x*y-4,range(4))

#结果:-40

#计算0到100的和

print reduce(lambda x,y:x+y, range(101))

#结果:5050

print reduce(lambda x,y:x+y, range(101),100)

#结果:5150

Python中 filter | map | reduce | lambda的用法

1.filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tupl ...

Python中的Map/Reduce

MapReduce是一种函数式编程模型,用于大规模数据集(大于1TB)的并行运算.概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数 ...

python中lambda,map,reduce,filter,zip函数

函数式编程 函数式编程(Functional Programming)或者函数程序设计,又称泛函编程,是一种编程范型,它将计算机运算视为数学上的函数计算,并且避免使用程序状态以及易变对象.简单来讲,函 ...

python 中的map(), reduce(), filter

据说是函数式编程的一个函数(然后也有人tucao py不太适合干这个),在我看来算是pythonic的一种写法. 简化了我们的操作,比方我们想将list中的数字都加1,最基本的可能是编写一个函数: I ...

Python 中的 map, reduce, zip, filter, lambda基本使用方法

map(function, sequence[, sequence, ...] 该函数是对sequence中的每个成员调用一次function函数,如果参数有多个,则对每个sequence中对应的元素 ...

【python】filter,map,reduce和lambda函数介绍

filter(function, iterable)map(function, iterable)reduce(function, sequence) filter将 function依次作用于ite ...

Python中filter、map、reduce、lambda 的用法

Python内置了一些非常有趣但非常有用的函数,充分体现了Python的语言魅力! filter(function, sequence):对sequence中的item依次执行function(ite ...

Python学习(五)函数 —— 内置函数 lambda filter map reduce

Python 内置函数 lambda.filter.map.reduce Python 内置了一些比较特殊且实用的函数,使用这些能使你的代码简洁而易读. 下面对 Python 的 lambda.fil ...

Python经常使用内置函数介绍【filter,map,reduce,apply,zip】

Python是一门非常简洁,非常优雅的语言,其非常多内置函数结合起来使用,能够使用非常少的代码来实现非常多复杂的功能,假设相同的功能要让C/C++/Java来实现的话,可能会头大,事实上Python是 ...

随机推荐

STC12C5A60S2笔记6(中断)

1. 基本特性 1) 中断源 STC12C5A60S2共有十个中断源,每个中断源可设置4类优先级:当相同优先级下各中断优先级由高到低依次如下: 1.1)INT0(外部中断0) 中断向量地址 0003H ...

C#线程系列讲座(1):BeginInvoke和EndInvoke方法

一.C#线程概述 在操作系统中一个进程至少要包含一个线程,然后,在某些时候需要在同一个进程中同时执行多项任务,或是为了提供程序的性能,将要执行的任务分解成多个子任务执行.这就需要在同一个进程中开启多个 ...

【FFT】专题总结

学了若干天终于学(bei)会了传说中的法法塔 感觉也没那么难用嘛 fft快速傅里叶变换 在大表课件上写就是解决高精乘的工具 其实很有理有据 fft就是用复数的折半引理优化两个多项式相乘的高端东西 他能 ...

Java学习笔记--Swing2D图形

1.处理2D图形 要想使用java 2D库绘制图形,需要获得一个Graphics2D类对象.这个类是Graphics类的子类.paintComponent方法自动获得一个Graphics2D类对象,我 ...

Strut2 spring hibernate 整合

一.创建web项目工程 wzz 点击finish 2.添加spring Jar包   AOP,Core,Persistence Core ,web jar 点击next 点击Finish 3.配置Da ...

mybatis基础学习1---(配置文件和sql语句)

1:配置文件(主要配置文件) 2:配置文件(引入) 3:sql语句解析: 根据id查对象 ...

java 虚拟机--新生代与老年代GC [转]

原文链接:http://www.360doc.com/content/12/1023/16/9615799_243296263.shtml 1. Java堆中各代分布: 图1:Java堆中各代分布 Y ...

javascript中字符串的方法

字符串的方法 charAt();返回字符串指定索引的字符: concat();连接两个或多个字符串: indexOf();返回字符串中检索指定字符第一次出现的位置: lastIndexOf();返回字 ...

java的抽象方法

抽象类所起的功能就像定义模板的功能,子类必须继承抽象类,因此不能用final修饰 http://blog.csdn.net/wei_zhi/article/details/52736350 抽象类的函 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值