[Python] 函数lambda(), filter(), map(), reduce()
转载地址:http://blog.csdn.net/dbanote/article/details/8912250
1、lambda()
lambda()是Python里的匿名函数,其语法如下:
lambda [arg1[, arg2, ... argN]]: expression
下面是个1+2=3的例子
>>> fun = lambda x,y:x+y
>>> fun(1,2)
3
>>> (lambda x,y:x+y)(1,2)
3
2、filter()
filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回:
>>> def f(x): return x % 2 != 0 and x % 3 != 0
>>> filter(f, range(2, 25))
[5, 7, 11, 13, 17, 19, 23]
>>> def f(x): return x != 'a'
>>> filter(f, "abcdef")
'bcdef'
3、map()
map(function, sequence) :对sequence中的item依次执行function(item),见执行结果组成一个List返回:
>>> def cube(x): return x*x*x
>>> map(cube, range(1, 11))
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
>>> def cube(x) : return x + x
...
>>> map(cube , "abcde")
['aa', 'bb', 'cc', 'dd', 'ee']
另外map也支持多个sequence,这就要求function也支持相应数量的参数输入:
>>> def add(x, y): return x+y
>>> map(add, range(8), range(8))
[0, 2, 4, 6, 8, 10, 12, 14]
4、reduce()
reduce(function, sequence, starting_value):对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用,例如可以用来对List求和:
>>> def add(x,y): return x + y
>>> reduce(add, range(1, 11))
55 (注:1+2+3+4+5+6+7+8+9+10)
>>> reduce(add, range(1, 11), 20)
75 (注:1+2+3+4+5+6+7+8+9+10+20)
5、综合例子
下面是两个综合利用以上四个函数的例子:
例子1:计算5!+4!+3!+2!+1!
a=[5,4,3,2,1]
def fun(x):
result = 1
while x >= 1:
result = result * x
x = x - 1
return result
print reduce(lambda x,y:x+y, map(fun,a))
例子2:将100以内的质数挑选出来
import math
def isPrime(n):
if n <= 1:
return False
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0:
return False
return True
print filter(isPrime,range(1,100))
[Python] 函数lambda(), filter(), map(), reduce()相关推荐
- python3函数中lambda/filter/map/reduce的用法
lambda/filter/map/reduce这几个函数面试中很肯定会用到,本篇主要介绍这几个函数的用法. 1.lambda 匿名函数,用法如下: # lambada 参数,参数,参数 : 返回的表 ...
- Python高级特性: 函数编程 lambda, filter,map,reduce
一.概述 Python是一门多范式的编程语言,它同时支持过程式.面向对象和函数式的编程范式.因此,在Python中提供了很多符合 函数式编程 风格的特性和工具. 以下是对 Python中的函数式编程 ...
- Python内建函数之——filter,map,reduce
原文链接:http://blog.csdn.net/prince2270/article/details/4681299 在讲述filter,map和reduce之前,首先介绍一下匿名函数lambda ...
- python高阶函数、map reduce 自己如何去定义_小猿圈python之高阶函数lambda、map和reduce用法...
python有很多内置函数,内置函数封装了很多功能,让我们用起来很方便,小猿圈针对高阶函数有详细的讲解视频,朋友们可以去看看,小编学后总结了一下,下面说一下lambda.map和reduce高阶函数的 ...
- Python基础(六)—函数式编程(内部函数、闭包、lambda、filter/map/reduce/sorce、偏函数)
内部函数 Python中函数的作用域由def关键字界定,函数内的代码访问变量的方式是从其所在层级由内向外,若往外直至全局作用域都查找不到的话代码会抛异常. 主要看以下代码的差别~~ "&qu ...
- python中 lambda, map ,filter ,reduce讲解
lambda 是匿名函数 同来表达简单的函数 使用lambda函数应该注意的几点: lambda定义的是单行函数,如果需要复杂的函数,应该定义普通函数 lambda参数列表可以包含多个参数,如 lam ...
- Python内置函数filter, map, reduce
filter.map.reduce,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,reduce用于归并. 是Python列表方法的三架马车. 1. filter函数的功能相当 ...
- Python学习之Part09.高阶函数filter(),map(),reduce(),sorted()
1.高阶函数 一个函数作为参数传给另外一个函数: 一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归) # abs()用来求一个数的绝对值 # 将abs函数赋值,则f==abs f = a ...
- filter,map,reduce,apply函数
(1)lambda lambda是Python中一个很有用的语法,它允许你快速定义单行最小函数.类似于C语言中的宏,可以用在任何需要函数的地方. 基本语法如下: 函数名 = lambda ar ...
最新文章
- linux vi 清除所有,Vi命令:如何删除全部内容
- 火爆国外的一份PyCharm快捷键和Python代码速查表
- SAP MM供应商主数据表
- Airbnb欺诈预测机器学习模型设计:准确率和召回率的故事
- Android HandlerThread 源码分析
- <table/>设置列宽度无效的问题
- MAC启动redis的目录
- 软件工程练习:模块化,单元测试,回归测试,TDD
- jparepository查询所有_jparepository 怎样自定义查询
- 互斥锁和条件变量【原创总结】
- 8086汇编语言入门-HelloWorld
- 学习bcgcontrol1
- 转盘抽奖的案例-----
- macOS Catalina10.15.4安装HP Laser Jet1020打印机驱动方法
- WPF 设置TextBox和PasswordBox设置光标位置
- 如何利用kali暴力破解WiFi密码
- ubuntu18打开网页慢的问题
- matlab菜单栏中的Revolve,NURBS matlab工具箱
- ftp 下载 工具,5款小白都能使用的ftp 下载 工具
- 用PYTHON做一个简单的游戏脚本(基础,详细)