美文网首页
匿名函数Lambda

匿名函数Lambda

作者: YuAllon | 来源:发表于2019-10-15 18:14 被阅读0次

匿名函数 lambda

与def一样,lambda表达式也是创建了一个之后可以调用的函数,但是它返回的是函数本身,而不是将其赋值给一个变量名。这也是lambda称为匿名函数的原因。

lambda表达式

lambda argument1, argument2, ... argumentN : expression using arguments

lambda的一般形式:关键字lambda后面跟上一个或多个参数(与一个def头部内用括号括起来的参数列表极其相似),之后是一个冒号,再之后是表达式。

  1. lambda是一个表达式,而不是语句。因为这一点,lambda可以出现在Python语法不允许def出现的地方。例如在一个列表字面量中或者函数调用参数中。def语句总是要在其它地方创建,并头部将一个新的函数赋值给一个名称(变量variable),lambda函数直接返回一个值(一个新的函数),也可以选择性地被赋值给一个变量名。
  2. lambda的主体是一个单独的表达式,而不是一个代码块。lambda的主体简单的就像def主体的return语句中的代码一样。由于lambda局限于一个表达式中,因此lambda通常要比def功能小。只能在lambda主体中封装有限的逻辑,if语句不能用目的是限制程序的嵌套。lambda是为了编写简单函数而设计的。

为什么使用lambda?

通常来说,lambda起到一种函数速写作用,可以在使用它的代码中嵌套一个函数定义。此外,每次使用def代码,都需要占用临时性函数名称(可能同其他名称相冲突),而想用的函数定义也会位于要使用的上下文外。

Example

  1. lambda可以在列表字面量中工作,而def则不能。
#lambda
>>> L = [lambda x: x**2, lambda x: x**3, lambda x: x**4]
>>> for f in L:
    print(f(2))
#def
>>> def f1(x): return x**2
>>> def f2(x): return x**3
>>> def f3(x): return x**4

>>> L = [f1, f2, f3]
>>> for f in L:
    print(f(2))
  1. lambda可以在函数调用参数中使用。
>>> sorted(range(-5, 6), key=lambda x: x ** 2)
[0, -1, 1, -2, 2, -3, 3, -4, 4, -5, 5]

>>> students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
>>> sorted(students, key=lambda s: s[2])            # 按年龄排序
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

参考文献

Python sorted() 函数
Lambda Function in Python: What are they good for?
Python学习手册第五版

Date: 2019 10 15

相关文章

  • Python基础——匿名函数+作用域

    一、匿名函数:lambda 函数名 = lambda 参数: 表达式 1、有名函数 2、匿名函数lambda [ ...

  • python常见高级用法

    Lambda匿名函数 匿名函数就是没有定义函数名称,可以实现函数某些简单功能 匿名函数格式: lambda par...

  • Python学习第五章

    lambda函数 lambda保留字用于定义一种特殊的函数——匿名函数,又称lambda函数。匿名函数并非没有名字...

  • lambda函数

    lambda 函数又称匿名函数,匿名函数就是没有名字的函数。我们来看个简单的例子: 关键字lambda表示匿名函数...

  • 【python】匿名函数、装饰器

    匿名函数: lambda 不需要显式地定义函数,直接传入匿名函数更方便。 关键字lambda表示匿名函数,冒号前面...

  • lambda匿名函数

    匿名函数 python 使用 lambda 来创建匿名函数。 lambda只是一个表达式,函数体比def简单很多。...

  • #python入门8#匿名函数

    匿名函数 *lambda x:xx ** 等效于: 关键字lambda表示匿名函数,冒号前面的x表示函数参数 匿...

  • python函数

    匿名函数 python 使用 lambda 来创建匿名函数。 lambda只是一个表达式,函数体比def简单很多。...

  • 函数

    lambda(匿名函数) lambda [arguments]: expression filter() [fil...

  • python基础--匿名函数&高阶函数

    lambda表达式返回匿名函数 python使用lambda创建匿名函数,lambda的主题是一个表达式而不是代码...

网友评论

      本文标题:匿名函数Lambda

      本文链接:https://www.haomeiwen.com/subject/wuzsmctx.html