前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python lambda表达式

Python lambda表达式

作者头像
Steve Wang
发布2018-02-05 17:44:11
6330
发布2018-02-05 17:44:11
举报
文章被收录于专栏:从流域到海域从流域到海域

“Lambda 表达式”(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(注意和数学传统意义上的不同)。 https://baike.baidu.com/item/lambda%E8%A1%A8%E8%BE%BE%E5%BC%8F

匿名函数

在其他语言中,匿名函数就是没有名字的函数: 比如安卓开发常见的给按钮添加单击事件

button.addActionListener(new ActionListener(){  //new ActionListener定义了一个匿名对象
public void actionPerformed(ActionEvent ae){
System.out.println("Actiondetected");
}
});

button.addActionListener(()->{   //没有函数名,用“()->{}”表示匿名函数
System.out.println("Actiondetected");
});

比如JavaScript的闭包

function Circle(r) {   //函数 函数名为Circle
    this.r = r;
}
Circle.PI = 3.14159;
Circle.prototype.area = function() {   //省略函数名 匿名函数
   return Circle.PI * this.r * this.r;
}
var c = new Circle(1.0);
alert(c.area()); //3.14159

Python lambda表达式

Python使用lambda表达式用来表示匿名函数,其特点是仅允许有一个表达式,并且默认将表达式的值作为函数的返回值。

>>> L = list(filter(lambda x: x%2 == 1, range(1,11)))
>>> print(L)
[1, 3, 5, 7, 9]
>>>

lambda x: x%2 ==1  #lambda表达式 即 匿名函数 等价于
def isodd(x):
    return x%2 ==1 #if(x%2 == 1): return x

匿名函数的优点:

  1. 简洁方便
  2. 不用担心与其他函数重名
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年12月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 匿名函数
  • Python lambda表达式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档