[2015-08-07] python018

来源:互联网 发布:ubuntu 挂载命令 编辑:程序博客网 时间:2024/05/22 17:15

匿名函数lambda

lambda args:expressionf1 = 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和第一个序列元素而不是序列的头两个元素
0 0
原创粉丝点击