[2015-08-07] python018

匿名函数lambda

lambda args:expression

f1 = lambda x,y : x+y 

args:以逗号分隔的参数列表
expression:用到args中各参数的表达式
  • lambda语句定义的代码必须是合法的表达式,不能出现多条件语句(可使用if的三元表达式)和其他非表达式语句,如for和while等
  • lamda的首要用途是指定短小的回调函数
  • lambda将返回一个函数而不是将函数赋值给某变量名
  • 注意:
    lambda是一个表达式而非语句
    lambda是一个单个表达式,而不是一个代码块
  • def语句创建的函数将赋值给某变量名,而lambda表达式则直接返回函数
  • lambda也支持使用默认参数

  • lambda

Python函数式编程

函数式编程:

  • 也称作泛函编程,是一种编程规范
  • 它将电脑运算视为数学上的函数计算,并且避免状态以及可变数据
  • 函数式编程语言最重要的基础是lambda演算,而且lambda演算的函数可以接受函数当作输入和输出

Python支持有限的函数式编程功能:

过滤器 filter(func,seq)

  • filter()为已知的序列的每个元素调用给定的布尔函数
  • 调用中,返回值为非零值的元素将被添加至一个列表中

映射器 map(func,seq1[,seq2…])

  • map()将函数调用“映射”到每个序列的对应元素上并返回一个含有所有返回值的列表

折叠 reduce(func,seq[,init])

  • 将二元函数作用域seq序列的元素,每次携带一对(先前的结果以及下一个序列元素),连续地将现有的结果和下一个值作用在获得的随后的结果上,最后减少我们的序列为一个单一的返回值;如果初始值init给定,第一个比较会是init和第一个序列元素而不是序列的头两个元素
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值