这篇文章主要介绍了简单了解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的区别相关推荐

  1. python的映射_Python学习:映射函数(map)和函数式编程工具(filter和reduce)

    在序列中映射函数map map函数会对一个序列对象中的每一个元素应用被传入的函数,并且返回一个包含了所有函数调用结果的一个列表. 例1:def sum(x): return x + 10 L1 = [ ...

  2. Python学习之Part09.高阶函数filter(),map(),reduce(),sorted()

    1.高阶函数 一个函数作为参数传给另外一个函数: 一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归) # abs()用来求一个数的绝对值 # 将abs函数赋值,则f==abs f = a ...

  3. python m http_非常简单的Python HTTP服务

    如果因为某种需求急需一个web服务器,而又不至于去在httpd和nginx中配置一个新的虚拟主机,Python或许可以帮上这个临时的小需求. 使用Python可以完成一个简单的内建 HTTP 服务器. ...

  4. python装饰器原理-简单了解python装饰器原理及使用方法

    这篇文章主要介绍了简单了解python装饰器原理及使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 如果你接触 Python 有一段时间了的话 ...

  5. php和python写爬虫-一个简单的Python写的XML爬虫

    一个简单的Python写的XML爬虫 来源:程序员人生 发布时间:2013-11-06 16:22:29 阅读次数:1578次 原理很简单,读XML结构,返回值,判断,根据返回的值得到下一个XML的地 ...

  6. php和python哪个学起来简单一点-python和php哪个容易学

    python和PHP的难易程度并没有明确的界限,如果是零基础的小白,建议学php会好一些,原因大公司小公司创业公司非互联网公司,都会用到php,python都是大公司在用 或互联网公司在用以你目前的背 ...

  7. php和python哪个学起来简单一点-python和php学习哪个更有发展

    无论是对于刚接触编程的初学者,还是已经工作的程序员,哪一门编程语言更火,更有价值和前景,似乎是永远有争议的话题. 下面来对比说以下python和Php哪个个更有前景! Python.PHP和其他编程语 ...

  8. python读文件代码-简单了解Python读取大文件代码实例

    这篇文章主要介绍了简单了解Python读取大文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 通常对于大文件读取及处理,不可能直接加载到内 ...

  9. python中的json_简单介绍Python中的JSON使用

    JSON进阶 Python的dict对象可以直接序列化为JSON的{},不过,很多时候,我们更喜欢用class表示对象,比如定义Student类,然后序列化: import json class St ...

最新文章

  1. ​纽约伊坎医学院房刚组诚聘博士后: 表观基因组, 宏基因组, 精准医疗
  2. Android切近实战(八)
  3. EXP 7 网络欺诈防范 20164303 景圣
  4. mongoDB的shell数组操作器
  5. java图片上传下载_java web 文件上传与下载
  6. java中英对比_2017-11-09 中英文代码对比系列之Java一例
  7. 【数据结构与算法】之深入解析“路径交叉”的求解思路与算法示例
  8. JDK源码解析之 Java.lang.Double
  9. 老实人一般容易吃亏,但是老实人遇到的机会比别人多一点点!
  10. Oracle疑问解答
  11. 【优化算法】可变步长LMS算法(VSS-LMS)【含Matlab源码 317期】
  12. Chrome历史版本和Chrome webDriver历史版本【多测师】
  13. 随滚动条移动的QQ在线客服代码
  14. vue后台管理做适配的最佳方案,你知道吗
  15. wingftpserver完整配置免费ftp站点(指南)
  16. CSS flex属性深入理解
  17. Amap【高德】/Google-开发,无人机航迹规划演示
  18. 数制转换c语言 1a 26,C语言数制转换
  19. java.lang.RuntimeException: Method w in android.util.Log not mocked Androidstudio单元测试配置build.gradle
  20. 感应熔炼设备市场现状及未来发展趋势分析

热门文章

  1. codeforces 69A-C语言解题报告
  2. Android Glide图片加载框架(二)源码解析之into()
  3. csdn 到底怎么了?不准转载?
  4. 给程序员们的工资报价提醒
  5. linux多线程 pthread用法
  6. GCC中SIMD指令的应用方法
  7. jws 方式表格导出,excel文件导出,rest风格接口实现
  8. luogu2577/bzoj1899 午餐 (贪心+dp)
  9. 创建自已的sql函数
  10. Android中常见功能包描述