zoukankan      html  css  js  c++  java
  • Python lambda表达式

    “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. 不用担心与其他函数重名
  • 相关阅读:
    《链队列---队列的链式表示和实现》
    《栈的应用_版本1.2(实现了可以在一次运行后进行多次操作)》
    《栈的应用_版本1.1(实现了如何十进制转十六进制)》
    《栈的应用 版本1.0》
    《栈的基本操作》
    《单链表练习》
    hdu5887 Herbs Gathering
    CF198 div1 D
    hdu5893 List wants to travel
    hdu5556 Land of Farms
  • 原文地址:https://www.cnblogs.com/wanghongze95/p/13842610.html
Copyright © 2011-2022 走看看