zoukankan      html  css  js  c++  java
  • python之lambda函数/表达式

    lambda函数也叫匿名函数,允许快速定义单行函数。通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。

    格式

    lambda argument_list: expression
    

    lambda与def的区别

    1)def创建的方法是有名称的,而lambda没有;
    2)lambda会返回一个函数对象,但这个对象不会赋给一个标志符,而def则会把函数对象赋值给一个变量(函数名);
    3)lambda只是一个表达式,而def是一个语句;
    4)lambda表达式“:”后面只能有一个表达式,而def则可以有多个;
    5)if、for、print等语句不能用于lambda中;
    6)lambda一般用于定义简单的函数;
    7)lambda函数不能共享给别的程序调用;

    lambda使用

    1、应用在函数式编程中

    Python提供了很多函数式编程的特性,如:map、reduce、filter、sored等函数都支持函数做为参数,lambda函数就可以应用在函数式编程中。

    # 需求:将列表中的元素按照绝对值大小进行升序排列
    list1 = [3,5,-4,-1,0,-2,-6]
    sorted(list1, key=lambda x: abs(x))
    

    2、应用在闭包中

    如果在一个函数的内部定义了另一个函数,外部的我们叫他外函数,内部的我们叫他内函数。

    闭包:在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。

    def get_y(a,b):
         return lambda x:a*x+b
    y1 = get_y(2,1)
    y1(2) # 结果为5
    
  • 相关阅读:
    字符统计和滑动窗口
    字典树应用及用哈希表代替
    迷宫里的动态规划应用
    求所有排列中的第 i 个排列的问题
    最大子串和问题
    二分查找、变形及应用
    前 n 个数原址排序的问题
    LeetCode 32 括号匹配
    11.常用的API
    10.正则表达式
  • 原文地址:https://www.cnblogs.com/amyzhu/p/9236688.html
Copyright © 2011-2022 走看看