lambda定义匿名函数

作者: 布拉豆 | 来源:发表于2017-04-23 13:16 被阅读80次

Python的关键字lambad是定义匿名函数用的....什么是匿名函数?就是不需函数名的函数。和def有什么区别呢?

  • python lambda会创建一个函数对象,但不会把这个函数对象赋给一个标识符,而def则会把函数对象赋值给一个变量。
  • python lambda它只是一个表达式,而def则是一个语句。

先定义一个普通函数:

>>> def add(x):
        return x*2
>>> add(1)
2
>>> add(5)
10

定义一个普通函数,主要作用就是将传入的值乘以2并返回。现在来改成匿名函数

>>> lambda x: x*2
<function __main__.<lambda>>

上面的示例,仅仅是定义了一个匿名函数,语法是lambda 参数 : 操作

  • 示例代码中参数是一个,但是参数可以很多个
  • 操作只有一条。x*2,不需要return会自己返回

还有一点,匿名函数创建好不会赋给参数,所以定义了之后需要使用,最好是传给一个标示符参数,如下:

>>> lam = lambda x: x*x
>>> lam
<function __main__.<lambda>>
>>> lam(10)
100
>>> lam(4)
16
>>> lamadd = lambda x,y:x+y
>>> lamadd(1,2)
3
>>> lamadd(100,99)
199
lambda定义和使用

既然定义必须赋给一个变量才可以使用,匿名函数+标示符 类似于 def定义的函数,那匿名的存在有什么意义?

既然这里提到 lambda 匿名函数,就必须提及高阶函数

高阶函数

首先明确一点,匿名函数定义传给一个变量,变量后面跟上括号并放入值,就可以得到函数操作,这就表明变量可以指向函数,这点很重要,理解这点之后,学习高阶函数就会有比较清晰的思路

同样的先来个示例学习一下什么叫高阶函数:

>>> f2 = lambda x:x*x
>>> def newadd(x,y,f):
        return f(x)+f(y)
>>> newadd(1, 2, f2)
5
>>> newadd( 3, 7, f2)
58

定义一个匿名函数并赋值给f2,并定义一个普通函数,参数是三个,x、y和一个 f 的函数。

由于前面提及的一个点:变量可以指向函数,所以f = f2 = lambda -> f(x) = f2(2) = 2*2 = 4

高阶函数的理解就是这样【只可意会不可言传】。理解这一点很重要,趁热继续学习python的内置高阶函数

高阶函数示例

Python内置高阶函数

map函数

map()函数接收两个参数,一个是函数名,另一个是可遍历的对象【如列表、字符串】,返回一个map类型。示例代码如下:

>>> ks1 = [1,2,3,4,5,6,7,8,9]
>>> ku = map(lambda x: x+1, ks1)
>>> type(ku)
map
>>> list(ku)
[2, 3, 4, 5, 6, 7, 8, 9, 10]

示例代码中,可以直接使用匿名函数,简洁明了

高阶函数map

高阶函数未完

更多Python3教程--传送门

相关文章

  • python常见高级用法

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

  • Python学习第五章

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

  • 17. Python之匿名函数

    1 匿名函数的定义 1.1 def用于定义有名函数 1.2 lambda用于定义匿名函数 2 调用匿名函数 3 匿...

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

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

  • python lambda函数

    lambda 是匿名函数 用来表达简单的函数使用lambda函数应该注意的几点: lambda定义的是单行函数,...

  • Python匿名函数Lambda

    1.匿名函数介绍 在Python中,通过lambda关键字来定义的函数称为匿名函数;lambda函数能接收任何数量...

  • lambda表达式

    什么是lambda表达式 lambda表达式的本质 lambda表达式是一种匿名函数,匿名函数是函数定义不绑定到任...

  • Python lambda函数

    lambda函数 在Python中,lambda函数是使用lambda表达式定义的单行匿名函数。它常用于将函数作为...

  • map和lambda表达式

    一. lambda 匿名函数lambda:是指一类无需定义标识符(函数名)的函数或子程序。 lambda 函数可以...

  • C++的匿名函数(lambda表达式)

    总述C++11提供了对匿名函数的支持,称为Lambda函数(也叫Lambda表达式). 它是定义和使用匿名函数对象...

网友评论

    本文标题:lambda定义匿名函数

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