python 函数式编程之lambda( ), map( ), reduce( ), filter( )
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( )的更多相关文章
- Python学习:函数式编程(lambda, map() ,reduce() ,filter())
1. lambda: Python 支持用lambda对简单的功能定义“行内函数” 2.map() : 3.reduce() : 4.filter() : map() ,reduce() , filt ...
- Python函数式编程之lambda表达式
一:匿名函数的定义 lambda parameter_list: expression 二:三元表达式 条件为真时返回的结果 if 条件判断 else 条件为假的时候返回的结果 三:map map(f ...
- python函数式编程学习之map,reduce,filter,sorted
map(f, list)函数用于将函数f运用到list里的每个元素中 写个例子 def pow(x): return x*x map(pow, [2,3,4]) reduce(f, list)函数用于 ...
- Python函数式编程之map()
Python函数式编程之map() Python中map().filter().reduce()这三个都是应用于序列的内置函数. 格式: map(func, seq1[, seq2,…]) 第一个参数 ...
- Python: lambda, map, reduce, filter
在学习python的过程中,lambda的语法时常会使人感到困惑,lambda是什么,为什么要使用lambda,是不是必须使用lambda? 下面就上面的问题进行一下解答. 1.lambda是什么? ...
- python中lambda,map,reduce,filter,zip函数
函数式编程 函数式编程(Functional Programming)或者函数程序设计,又称泛函编程,是一种编程范型,它将计算机运算视为数学上的函数计算,并且避免使用程序状态以及易变对象.简单来讲,函 ...
- java函数式编程之lambda表达式
作为比较老牌的面向对象的编程语言java,在对函数式编程的支持上一直不温不火. 认为面向对象式编程就应该纯粹的面向对象,于是经常看到这样的写法:如果你想写一个方法,那么就必须把它放到一个类里面,然后n ...
- python函数式编程之yield表达式形式
先来看一个例子 def foo(): print("starting...") while True: res = yield print("res:",res ...
- python--函数式编程 (高阶函数(map , reduce ,filter,sorted),匿名函数(lambda))
1.1函数式编程 面向过程编程:我们通过把大段代码拆成函数,通过一层一层的函数,可以把复杂的任务分解成简单的任务,这种一步一步的分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. ...
随机推荐
- sqlplus 调试存储过程
SQLPLUS里测试带返回参数的存储过程过程名p_test入参 aa varchar2出参 bb sys_refcursor 在SQLPLUS里如何将sys_refcursor 这个结果集获取出来呢 ...
- 有关查询和执行计划的DMV
转自:http://www.cnblogs.com/CareySon/archive/2012/05/17/2506035.html 查看被缓存的查询计划 SET TRANSACTION ISOLAT ...
- serilization 序列化 transient 不被序列化
Serizlizable 作用 对于一个存在于Java虚拟机中的对象来说,其内部的状态只保持在内存中.JVM停止之后,这些状态就丢失了.在很多情况下,对象的内部状态是需要被持久化下来的.提到持久化,最 ...
- C++学习笔记1(Windows程序运行原理及程序编写流程)
窗口产生过程,句柄原理,消息队列,回调函数,窗口关闭与应用程序退出的工作关系,使用VC++的若干小技巧,stdcall与Lessonecl调用规范的比较,初学者常犯错误及注意事项.以下是应用程序与操作 ...
- Redis 【keys】 一句话说明
DEL----------------------------------删除给定的一个或多个key DUMP--------------------------------序列化给定key,并返回被 ...
- PictureBox控件
PictureBox控件可以显示来自位图.图标或者元文件,以及来自增强的元文件.JPEG.GIF文件的图形,如果控件不足以显示整幅图像,则裁剪图像以适应控件的大小. Sizemode 图片的大小方式 ...
- PhpStorm 破解及 XDebug 调试
PhpStorm 破解及 XDebug 调试 PhpStorm 破解 PhpStorm 10.0.2 破解 地址:http://jingyan.baidu.com/article/20095761cb ...
- Best MVC Practices 最佳的MVC实践
Although Model-View-Controller (MVC) is known by nearly every Web developer, how to properly use MVC ...
- JAVA将数字钱数转换为大写
1.Java文件的编写 package com.cwai.xtag; import java.util.Scanner; public class Num2Rmb { private String[] ...
- 撩课-Web大前端每天5道面试题-Day15
1.请描述一下 cookies,sessionStorage 和 localStorage 的区别? cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过 ...