lambda( ), map( ), reduce( ), filter( )

1. lambda( )主要用于“行内函数”:

 f = lambda x : x + 2 #定义函数f(x)=x+2
g = lambda x,y: x+y #定义函数f(x,y)=x+y

2. 列表解析:可以简化代码

 a = [1,2,3]
b =[]
for i in a:
b.append(i+2) #使用列表解析完成上述功能:
a = [1,2,3]
b = [i+2 for i in a]

3. map( ): 以下例子分别完成f(x)=x+2,  f(x,y)=x*x*x+y

 #使用map完成上述功能:
a = [1,2,3]
#c = map(function, sequence)
c = map(lambda x:x+2, a)
 a = [1,2,3]
b = [1,1,1]
#c = map(function, sequence)
#map()函数可接受多参数
c = map(lambda x,y: x**3 +y , a,b)

“列表解析”本质上还是for命令,python的for命令效率并不高。map( )函数实现了相同的功能,并且效率更高。

4. reduce( ):

map( )函数是逐一遍历, reduce( )函数是递归遍历

 # 完成一个求n以内阶乘的函数:1*2*3*4*5* ……n
a = lambda x,y : x*y
#reduce(function, sequence)
b = reduce(a, range(1,n+1))

5. filter( ): 过滤

 #filter(function_or_None, sequence)
a = filter(lambda x: x>5 and x<8, range(10))
#列表解析式完成:
b = [x for x in range(10) if x>5 and x<8]

python 函数式编程之lambda( ), map( ), reduce( ), filter( )的更多相关文章

  1. Python学习:函数式编程(lambda, map() ,reduce() ,filter())

    1. lambda: Python 支持用lambda对简单的功能定义“行内函数” 2.map() : 3.reduce() : 4.filter() : map() ,reduce() , filt ...

  2. Python函数式编程之lambda表达式

    一:匿名函数的定义 lambda parameter_list: expression 二:三元表达式 条件为真时返回的结果 if 条件判断 else 条件为假的时候返回的结果 三:map map(f ...

  3. python函数式编程学习之map,reduce,filter,sorted

    map(f, list)函数用于将函数f运用到list里的每个元素中 写个例子 def pow(x): return x*x map(pow, [2,3,4]) reduce(f, list)函数用于 ...

  4. Python函数式编程之map()

    Python函数式编程之map() Python中map().filter().reduce()这三个都是应用于序列的内置函数. 格式: map(func, seq1[, seq2,…]) 第一个参数 ...

  5. Python: lambda, map, reduce, filter

    在学习python的过程中,lambda的语法时常会使人感到困惑,lambda是什么,为什么要使用lambda,是不是必须使用lambda? 下面就上面的问题进行一下解答. 1.lambda是什么? ...

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

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

  7. java函数式编程之lambda表达式

    作为比较老牌的面向对象的编程语言java,在对函数式编程的支持上一直不温不火. 认为面向对象式编程就应该纯粹的面向对象,于是经常看到这样的写法:如果你想写一个方法,那么就必须把它放到一个类里面,然后n ...

  8. python函数式编程之yield表达式形式

    先来看一个例子 def foo(): print("starting...") while True: res = yield print("res:",res ...

  9. python--函数式编程 (高阶函数(map , reduce ,filter,sorted),匿名函数(lambda))

    1.1函数式编程 面向过程编程:我们通过把大段代码拆成函数,通过一层一层的函数,可以把复杂的任务分解成简单的任务,这种一步一步的分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. ...

随机推荐

  1. JavaScript自动化构建工具grunt、gulp、webpack介绍

    前端开发自动化工作流工具,JavaScript自动化构建工具grunt.gulp.webpack介绍 前端自动化,这样的一个名词听起来非常的有吸引力,向往力.当今时代,前端工程师需要维护的代码变得及为 ...

  2. Mathematik

    Ausdruck auf Deutsch Lösen Problem der Abteilung. 求导. Die Abteilung von 3x ist 3. 3x的导数是3 Lösen Prob ...

  3. 数据结构(三)--- B树(B-Tree)

       文章图片代码来自邓俊辉老师的课件 概述 上图就是 B-Tree 的结构,可以看到这棵树和二叉树有点不同---"又矮又肥".同时子节点可以有若干个小的子节点构成.那么这样一棵树 ...

  4. MAC 系统 各种操作

    Part1:MAC如何打开活动监控器 1.第一种方法: 2.第二种方法 然后直接拖到dock中 Part2:Terminal 中的操作 一.如何开启apache 在终端输入sudo apachectl ...

  5. Hbase配置指南

    注意点 Hbase 需要zookeeper. Hbase 需要在各个节点的机器上配置. 集群中的启动顺序是Hadoop.zookeeper 和Hbase 搭建步骤 解压安装文件并配置环境变量. exp ...

  6. python中字符串格式化%与.format

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  7. idea 常用快捷键 笔记

    1. main方法 输入psv tab或回车 类似的 psf fori (for循环) sout 备注:  通过ctrl+j 可以查询 2. 删除当前行 ctrl + y 3. 复制当前行 ctrl ...

  8. 跨域方法:JSONP、iframe

    同源策略:浏览器出于安全考虑,会限制文档或脚本中发起的跨域请求(但src请求不受此限)资源的加载.实际上通过抓包软件可以发现请求和响应都会成功,但是响应数据并不会被浏览器加载.不同源的客户端脚本(ja ...

  9. 已注册成Portal联合服务器的Server,如何修改机器名?

    1.产品版本 ArcGIS for Server 10.2.2 2.修改说明 本环境中,Portal for ArcGIS和ArcGIS for Server两个产品安装在同一台机器上.安装前已将完全 ...

  10. HTML 5 教程

    HTML5 是下一代的 HTML.有必要再过一遍.看下要点. 具体看  http://www.w3school.com.cn/html5/index.asp    教程 和  HTML5 标签参考手册 ...