美文网首页
匿名函数lambda

匿名函数lambda

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

写在前面的话:

在pandas 入门学习中,第一次接触到匿名函数lambda,虽然能猜懂其中lambda的作用,但仍觉得不够系统,尤其是与def的对比。这篇文章就是简单总结一下自己对lambda的理解。

匿名函数:lambda

在Python中有两种声明函数的方法:deflambda。与def一样,lambda创建了一个之后能够调用的函数,它返回该函数本身而不是将其赋值给一个变量名,这便是lambda称为匿名函数的原因。

lambda表达式

lambda函数的一般形式是:关键字lambda后面跟上一个或者多个参数,之后是一个冒号,最后是一个表达式。

lambda argument1, argument2, ..., argumentN : expression using arguments 
  1. lambda是一个表达式,而不是语句
    因为这一点,lambda能够出现在Python语法不允许def出现的地方。譬如:列表、字典或者函数调用的参数中等。作为一个表达式,lambda返回一个值(一个新函数),而且可以选择性地被赋值给一个变量名。相反,def语句总是需要在头部将一个函数赋值给一个名称,而不是将函数作为结果返回。
  2. lambda的主体是一个单独的表达式,而不是一个代码块
    因为lambda是一个表达式,所以lambda通常要比def功能:只能在lambda的主体中封装有限的逻辑,连if语句都不能使用。lambda是为了编写简单的函数而设计的,合理的使用lambda函数可以使得代码更pythonic。

def语句

def name (arg1, arg2, ..., argN):
       statements

例子

def func(x,y,z):
    return x+y+z
func(2,3,4)
9
#这里f被赋值给lambda创建的函数对象
f = lambda x,y,z: x+y+z
f(2,3,4)
9

为什么使用lambda

lambda起到一种函数速写的作用,可以在使用它的代码中内嵌一个函数的定义,会带来更加简洁的代码结构。当然lambda是完全可选的,总可以使用def来代替lambda。

L = [lambda x: x**2,
    lambda x: x**3,
    lambda x: x**4]
for f in L:
    print(f(2))
4
8
16
#
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))
4
8
16

结语:

有关lambda的简单总结到此就结束了,如何合理使用lambda使得代码更加简洁,只能留给后面的探索了。

参考书籍:

《Python学习手册》
2019-06-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/nrhbfctx.html