python lambda map reduce_简单了解python filter、map、reduce的区别
这篇文章主要介绍了简单了解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
#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 lambda map reduce_简单了解python filter、map、reduce的区别相关推荐
- python的映射_Python学习:映射函数(map)和函数式编程工具(filter和reduce)
在序列中映射函数map map函数会对一个序列对象中的每一个元素应用被传入的函数,并且返回一个包含了所有函数调用结果的一个列表. 例1:def sum(x): return x + 10 L1 = [ ...
- Python学习之Part09.高阶函数filter(),map(),reduce(),sorted()
1.高阶函数 一个函数作为参数传给另外一个函数: 一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归) # abs()用来求一个数的绝对值 # 将abs函数赋值,则f==abs f = a ...
- python m http_非常简单的Python HTTP服务
如果因为某种需求急需一个web服务器,而又不至于去在httpd和nginx中配置一个新的虚拟主机,Python或许可以帮上这个临时的小需求. 使用Python可以完成一个简单的内建 HTTP 服务器. ...
- python装饰器原理-简单了解python装饰器原理及使用方法
这篇文章主要介绍了简单了解python装饰器原理及使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 如果你接触 Python 有一段时间了的话 ...
- php和python写爬虫-一个简单的Python写的XML爬虫
一个简单的Python写的XML爬虫 来源:程序员人生 发布时间:2013-11-06 16:22:29 阅读次数:1578次 原理很简单,读XML结构,返回值,判断,根据返回的值得到下一个XML的地 ...
- php和python哪个学起来简单一点-python和php哪个容易学
python和PHP的难易程度并没有明确的界限,如果是零基础的小白,建议学php会好一些,原因大公司小公司创业公司非互联网公司,都会用到php,python都是大公司在用 或互联网公司在用以你目前的背 ...
- php和python哪个学起来简单一点-python和php学习哪个更有发展
无论是对于刚接触编程的初学者,还是已经工作的程序员,哪一门编程语言更火,更有价值和前景,似乎是永远有争议的话题. 下面来对比说以下python和Php哪个个更有前景! Python.PHP和其他编程语 ...
- python读文件代码-简单了解Python读取大文件代码实例
这篇文章主要介绍了简单了解Python读取大文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 通常对于大文件读取及处理,不可能直接加载到内 ...
- python中的json_简单介绍Python中的JSON使用
JSON进阶 Python的dict对象可以直接序列化为JSON的{},不过,很多时候,我们更喜欢用class表示对象,比如定义Student类,然后序列化: import json class St ...
最新文章
- ​纽约伊坎医学院房刚组诚聘博士后: 表观基因组, 宏基因组, 精准医疗
- Android切近实战(八)
- EXP 7 网络欺诈防范 20164303 景圣
- mongoDB的shell数组操作器
- java图片上传下载_java web 文件上传与下载
- java中英对比_2017-11-09 中英文代码对比系列之Java一例
- 【数据结构与算法】之深入解析“路径交叉”的求解思路与算法示例
- JDK源码解析之 Java.lang.Double
- 老实人一般容易吃亏,但是老实人遇到的机会比别人多一点点!
- Oracle疑问解答
- 【优化算法】可变步长LMS算法(VSS-LMS)【含Matlab源码 317期】
- Chrome历史版本和Chrome webDriver历史版本【多测师】
- 随滚动条移动的QQ在线客服代码
- vue后台管理做适配的最佳方案,你知道吗
- wingftpserver完整配置免费ftp站点(指南)
- CSS flex属性深入理解
- Amap【高德】/Google-开发,无人机航迹规划演示
- 数制转换c语言 1a 26,C语言数制转换
- java.lang.RuntimeException: Method w in android.util.Log not mocked Androidstudio单元测试配置build.gradle
- 感应熔炼设备市场现状及未来发展趋势分析