技术原理

什么是Lambda函数以及如何使用它们?

成为认证专业人士

名称是用来指代或称呼任何实体的惯例。我们周围的一切都有名字。编程界也正是如此。但这是必须命名的一切吗?或者你能要些“匿名”的东西吗?答案是,是的。Python提供Lambda函数,也被称为匿名函数,实际上这些函数是无名的。因此,让我们按照下面的顺序来了解这些Python的“匿名奥秘”。

为什么需要Python Lambda函数?什么是Python Lambda函数?如何编写Lambda函数?匿名函数如何减少代码的大小?用户定义函数中的Python Lambda函数如何在:filter()map()reduce()

中使用匿名函数,那么让我们开始:)

为什么使用Python Lambda函数当你只需要一次函数的时候,匿名函数的主要目的就显现出来了。它们可以在任何需要的地方被创造出来。由于这个原因,Python Lambda函数也被称为丢弃函数,与filter()、map()等其他预定义函数一起使用。与普通Python函数相比,这些函数有助于减少代码行数。

来证明这一点,让我们进一步了解Python Lambda函数。

什么是Python Lambda函数

“Python Lambda函数是没有任何名称的函数。它们也被称为匿名或匿名函数。“lambda”不是一个名字,而是一个关键字。此关键字指定后面的函数是匿名的。

既然您知道这些匿名函数指的是什么,让我们进一步了解如何编写这些Python Lambda函数。

如何用Python编写Lambda函数

“Lambda函数是使用Lambda运算符创建的,其语法如下:

语法:

Lambda参数:表达式

Python Lambda函数可以有任意数量的参数,但只需要一个表达式。输入或参数可以从0开始并达到任何限制。就像其他函数一样,没有输入的lambda函数是非常好的。因此,可以使用以下任何格式的lambda函数:

示例

lambda:“指定用途”

此处lambda函数不带任何参数。

示例:

lambda a1:“指定使用a1”

此处,lambda正在接受一个输入,它是a1。

类似地,您可以有lambda a1,a2,a3..an。

让我们举几个例子来演示这一点:

示例1:

a=λx:x*x印刷品(a(3))

输出:9

示例2:

a=λx,y:x*y印刷品(a(3,7))

输出:21

如您所见,我在这里举了两个例子。第一个示例只使用一个表达式的lambda函数,而第二个示例有两个传递给它的参数。请注意,这两个函数都有一个后跟参数的表达式。因此,lambda函数不能用于需要多行表达式的地方。

另一方面,普通python函数可以在其函数定义中使用任意数量的语句。

匿名函数如何减小代码的大小在比较所需的代码量之前,让我们首先写下普通函数的语法,并将其与前面描述的lambda函数的语法进行比较。

Python中的任何普通函数都是使用def关键字定义的,如下所示:

语法:

def函数名(参数):语句

可以看到lambda函数比普通函数小得多。

现在让我们重写前面使用普通函数的示例。

示例:

定义我的函数(x):返回x*x打印(my_func(3))

输出:9

,如您所见,在上面的示例中,我们需要my func中的return语句来计算3的平方值。相反,lambda函数没有使用这个return语句,但是,匿名函数的主体与函数本身写在同一行中,在冒号之后。因此,函数的大小小于my_func.

的大小。但是,上面示例中的lambda函数是使用其他变量a调用的。之所以这样做,是因为这些函数没有名称,因此需要调用一些名称。但是,这一事实似乎让人困惑,当您需要实际分配其他名称来调用这些无名函数时,为什么要使用这些无名函数?当然,在给我的函数分配了名称a之后,它就不再是无名的了!对吧?”

这是一个合理的问题,但问题是,这不是使用这些匿名函数的正确方法。

匿名函数最好用于其他高阶函数,这些函数要么使用某个函数作为参数,要么返回一个函数作为输出。为了演示这一点,现在让我们继续讨论下一个主题。

Python Lambda函数在用户定义函数中的作用:

如上所述,lambda函数用于其他函数以标记最佳优势。

下面的示例包含new_func,它是一个带一个参数x的普通python函数。然后将此参数添加到通过lambda函数提供的某个未知参数y中。

示例:

定义新函数(x):返回(lambda y:x y)t=新函数(3)打印(t(3))

输出:

6 5如您所见,在上面的示例中,只要使用new_func(),就会调用new_func中存在的lambda函数。每次,我们都可以将单独的值传递给参数。既然您已经了解了如何在高阶函数中使用匿名函数,现在让我们继续了解它最常用的用法之一,即在filter()、map()和reduce()方法中。

如何在filter()中使用匿名函数,map()和reduce():

filter()中的匿名函数:

filter():

filter()方法用于在另一个函数的帮助下过滤给定的iterable(列表、集合等),作为参数传递,要测试所有元素是否正确。

此函数的语法为:

语法:

筛选器(函数,可设置)

现在考虑以下示例:

示例:

我的清单=[2,3,4,5,6,7,8]new_list=list(过滤器(lambda a:(a/3==2,my_list))

输出:[6]

这里,my_list是传递给filter函数的iterable值的列表。此函数使用lambda函数检查列表中是否有任何值,当除以3时,该值等于2。输出包含满足匿名函数中表达式的列表。

map():

Python中的map()函数是将给定函数应用于所有可访问项并返回新列表的函数。

语法:

map(function,iterable)

让我们举一个例子来演示在map()函数中lambda函数的使用:

示例:

我的清单=[2,3,4,5,6,7,8]new_list=列表(映射(lambda a:(a/3!)!=2),锂)

输出:

[真、真、真、真、假、真、真]

上述输出表明,当iterables的值除以3时不等于2时,返回的结果应为真。因此,对于我的清单中的所有元素,当条件更改为False时,它返回true,但值6除外。

reduce():

reduce()函数用于将某些其他函数应用于作为参数传递给它的元素列表,并最终返回单个值。

此函数的语法如下:

语法:

reduce(函数,序列)

示例:

从functools导入reduce减少(lambda a,b:a b,[23,21,45,98])

上面的例子如下图所示:

reduce-python lambda-edureka

输出:187

输出清楚地表明,列表中的所有元素都是不断添加以返回最终结果的。

有了这个,我们就结束了这篇关于“Python Lambda”的文章。希望你对所有与你分享的东西都很清楚。确保你尽可能多地练习,恢复你的经验。

有问题要问我们吗?请在“Python Lambda”博客的评论部分提及它,我们将尽快给您回复。

要深入了解Python及其各种应用程序,您可以注册参加具有全天候支持和终身访问的Python在线培训。

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片
人工智能机器人加盟 投稿者
我还没有学会写个人说明!
最近文章
  • * 没有更多文章了
  • 热门搜索

    分类目录