您好,登录后才能下订单哦!
这期内容当中小编将会给大家带来有关Python中 Lambda函数如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
当您只需要一次使用某些功能时,匿名功能的主要目的就会显现出来。可以在任何需要的地方创建它们。由于这个原因,Python Lambda函数也称为抛出函数,与其他预定义函数(例如filter(),map()等)一起使用。与普通的python函数。
为了证明这一点,让我们继续学习Python Lambda函数。
Python Lambda函数是没有任何名称的函数。它们也称为匿名或无名功能。“ lambda”一词不是名称,而是关键字。此关键字指定后面的函数是匿名的。
现在您已经知道这些匿名函数指的是什么,让我们进一步了解一下如何编写这些Python Lambda函数。
使用lambda运算符创建Lambda函数,其语法如下:
句法:
lambda参数:表达式
Python lambda函数可以具有任意数量的参数,但只需要一个表达式。输入或自变量可以从0开始,并可以达到任何限制。就像任何其他函数一样,具有不带输入的lambda函数也很好。因此,您可以使用以下任何格式的lambda函数:
例子:
lambda:“指定目的”
在这里,lambda函数不接受任何参数。
例子:
拉姆达一个1:“指定使用的1 “
在这里,lambda接受一个输入,即1。
同样,您可以具有lambda a 1,a 2,a 3 ..a n。
让我们举几个例子来证明这一点:
范例1:
a = lambda x: x*x print(a(3))
输出: 9
范例2:
a = lambda x,y: x*y print(a(3,7))
输出: 21
如您所见,我在这里举了两个例子。第一个示例仅使用带有一个表达式的lambda函数,而第二个示例具有传递给它的两个参数。请注意,两个函数都有一个表达式,后跟参数。因此,在需要多行表达式的地方不能使用lambda函数。
另一方面,普通的python函数可以在其函数定义中使用任意数量的语句。
在比较所需的代码量之前,让我们首先写下常规函数的语法,然后将其与前面所述的lambda函数的语法进行比较。
Python中的任何常规函数都是使用def关键字定义的,如下所示:
句法:
def function_name(parameters):
语句
如您所见,lambda函数所需的代码量比普通函数少得多。
让我们用现在的普通函数重写前面的示例。
例子:
def my_func(x): return x*x print(my_func(3))
输出: 9
如您所见,在上面的示例中,我们需要在my_func中使用return语句来计算3的平方值。相反,lambda函数不使用此return语句,而是使用匿名函数的主体在冒号后跟函数本身写在同一行。因此,函数的大小小于my_func的大小。
但是,上述示例中的lambda函数是使用其他一些变量a调用的。这样做是因为这些函数是无名的,因此需要调用某些名称。但是,当您需要实际分配其他名称来调用它们时,为什么要使用这样的无名函数,这一事实似乎令人困惑?当然,在为我的函数分配名称a之后,它不再不再是无名的了!正确的?
这是一个合理的问题,但重点是,这不是使用这些匿名函数的正确方法。
匿名函数最好在其他将函数用作参数或返回函数作为输出的其他高阶函数中使用。为了证明这一点,让我们现在继续进行下一个主题。
如上文所述,lambda函数可在其他函数中使用,以标记出最大的优势。
以下示例由new_func组成,这是一个带有一个参数x的常规python函数。然后将此参数添加到通过lambda函数提供的未知参数y中。
例子:
def new_func(x): return(lambda y: x+y) t=new_func(3) u=new_func(2) print(t(3)) print(u(3))
输出:
6 5
如您所见,在上面的示例中,每当我们使用new_func()时,都会调用new_func中存在的lambda函数。每次,我们都可以将单独的值传递给参数。
既然您已经了解了如何在高阶函数中使用匿名函数,那么让我们继续了解它的最流行用法之一是在filter(),map()和reduce()方法中。
filter()中的匿名函数:
filter()方法用于在另一个作为参数传递的函数的帮助下,过滤给定的iterables(列表,集合等),以测试所有元素为真还是假。
该函数的语法为:
句法:
过滤器(函数,可迭代)
现在考虑以下示例:
例子:
my_list = [2,3,4,5,6,7,8] new_list = list(filter(lambda a: (a/3 == 2), my_list)) print(new_list)
输出: [6]
在这里,my_list是可迭代值的列表,该值传递给过滤器函数。此函数使用lambda函数检查列表中是否有任何值(除以3后等于2)。输出由满足匿名函数中存在的表达式的列表组成。
Python中的map()函数是将给定函数应用于所有可迭代对象并返回新列表的函数。
句法:
地图(函数,可迭代)
让我们以一个示例来演示lambda函数在map()函数中的用法:
例子:
my_list = [2,3,4,5,6,7,8] new_list = list(map(lambda a: (a/3 != 2), li)) print(new_list)
输出:
[True,True,True,True,False,True,True]
上面的输出显示,只要可迭代变量的值除以3,就不等于2,则返回的结果应为True。因此,对于my_list中的所有元素,当条件更改为False时,它将返回true(除了值6之外)。
reduce()函数用于将某些其他函数应用于作为参数传递给它的元素列表,并最终返回单个值。
该函数的语法如下:
句法:
减少(功能,顺序)
例子:
from functools import reduce reduce(lambda a,b: a+b, [23,21,45,98])
下图描述了上面的示例:
输出: 187
输出清楚地表明,列表的所有元素都被连续添加以返回最终结果。
上述就是小编为大家分享的Python中 Lambda函数如何使用了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。