当前位置: 首页 > 面试题库 >

“ lambda”在Python中是什么意思,最简单的使用方式是什么?

苍嘉澍
2023-03-14
问题内容

您能否举一个示例以及其他示例来说明何时以及何时不使用Lambda?我的书给了我一些例子,但它们令人困惑。


问题答案:

Lambda源自Lambda演算(AFAIK),最初是在Lisp中实现的,它基本上是一个匿名函数-
该函数没有名称,可以在线使用,换句话说,您可以将标识符分配给lambda函数在单个表达式中如下所示:

>>> addTwo = lambda x: x+2
>>> addTwo(2)
4

这将分配addTwo给匿名函数,该函数接受1个参数x,并且在函数主体中将2加到x,它返回函数主体中最后一个表达式的最后一个值,因此没有return关键字。

上面的代码大致等效于:

>>> def addTwo(x):
...     return x+2
... 
>>> addTwo(2)
4

除了不使用函数定义外,您还要为lambda分配一个标识符。

使用它们的最好的地方是,当你真的不希望定义一个函数的名称,可能是因为该功能将只使用 一个 时间,而不是无数次,在这种情况下,你会过得更好用的函数定义。

使用lambdas的哈希树示例:

>>> mapTree = {
...     'number': lambda x: x**x,
...     'string': lambda x: x[1:]
... }
>>> otype = 'number'
>>> mapTree[otype](2)
4
>>> otype = 'string'
>>> mapTree[otype]('foo')
'oo'

在此示例中,我真的不想为这些函数中的任何一个定义名称,因为我只会在哈希中使用它们,因此,我将使用lambda。



 类似资料:
  • 问题内容: 嗨,我遇到了以下代码 这到底是怎么回事?我不确定“&”在做什么。 问题答案: 回答 该符号是按位与运算符。与1一起使用时,基本上会屏蔽该值以提取最低位,换句话说,它将告诉您该值是偶数还是奇数。 有关Python运算符的更多信息 有关更多信息,请参见:http : //wiki.python.org/moin/BitwiseOperators 为什么检查奇数与偶数比较有效 编辑:添加此部

  • 问题内容: 我试图在Python 3.3中使用旧的库(可追溯至2003年!)。当我导入它时,Python抛出错误,因为源文件中有符号,例如: 我猜这是该语言现在被放弃的标志。 它到底是什么意思,我应该用哪个(较新的)符号代替? 问题答案: 这意味着不等于。它取自(python的前身)此处: 订单测试(表示 “不等于” ) 我相信它是从Pascal那里获得的,Pascal是Guido开始使用的语言。

  • 问题内容: 我尝试搜索互联网,但找不到可哈希的含义。 当他们说物体是什么或什么意思? 问题答案: 从Python词汇表中: 如果对象的哈希值在其生命周期内始终不变(需要一个方法),并且可以与其他对象进行比较(需要一个方法),则该对象是可哈希的。比较相等的可哈希对象必须具有相同的哈希值。 散列性使对象可用作字典键和set成员,因为这些数据结构在内部使用散列值。 Python的所有不可变内置对象都是可

  • 问题内容: 以下语句的含义是什么? 我想我已经听说过,和,但从来没有听说过这一点。 问题答案: 背景: 在Python中,有两个内置函数可将对象转换为字符串:vs .。应该是一个易于理解的友好字符串。应该包含有关对象内容的详细信息(有时,它们会返回相同的内容,例如整数)。按照惯例,如果有一个Python表达式可以转换为==的另一个对象,则将返回这样的表达式,例如 如果返回表达式对对象没有意义,则应

  • 问题内容: , :在Python 中做什么? 在这种情况下是什么意思? 问题答案: 简而言之,它遍历组合在一个元组中的可迭代元素(如列表)以及索引号: 版画 如果你要遍历一个序列(或其他可迭代的事物),并且还希望有一个索引计数器,这将很有帮助。如果你希望计数器从其他值(通常为1)开始,则可以将其作为第二个参数。

  • 问题内容: 我已经看到了声明,接口和类 这是什么意思? 问题答案: 没有证据,我相信您在谈论Java的泛型支持… 泛型允许您抽象类型 在Java 5之前,很难提供能够支持多种不同类型的Objects的类而不必为每种特定情况编写代码,因此人们通常会这样做。 这导致在运行时做出许多困难的选择,您必须进行运行时检查以查看是否有可能将给定的Object强制转换为可用类型…例如 现在,这已经很明显了,但是如