如何通过Lambda函数在Python中创建无名函数
Lambda函数是Python内置函数中一个非常神奇的函数,它可以快速地创建简单的、无名字的函数。通常,Lambda函数我们也叫做匿名函数。
在Python中,创建一个Lambda函数非常简单。只需要使用关键字“lambda”,后跟参数列表和函数体即可,如下所示:
lambda x,y:x+y
上述代码创建了一个Lambda函数,可以接受两个参数x和y,然后将它们相加并返回结果。但是,这个Lambda函数没有函数名,所以我们无法直接调用它,只能使用一个函数对象将其保存起来,然后通过这个对象来调用它。
下面是一个将Lambda函数保存到变量中,再通过变量调用Lambda函数的例子:
add = lambda x,y:x+y print(add(1,2))
在上面的例子中,我们将Lambda函数保存到变量add中,然后通过add变量调用Lambda函数,输出结果为3。
除了这种使用方式,Lambda函数还可以用作其他函数的参数,比如map()、filter()、reduce()等函数。例如,我们可以使用Lambda函数作为map()函数的参数,将一个序列中的每个元素都加上1,如下所示:
lis = [1, 2, 3, 4, 5] new_lis = map(lambda x:x+1, lis) print(list(new_lis))
在上面的例子中,我们使用map()函数将Lambda函数应用到序列lis的每个元素上,得到一个新的序列new_lis并输出。
另外,Lambda函数还可以使用默认参数和可变参数。例如,我们可以创建一个Lambda函数,利用默认参数来设置一个缺省的值,如下所示:
my_max = lambda x,y=10:x if x>y else y print(my_max(5)) print(my_max(50,20))
在上面的例子中,我们使用Lambda函数创建了一个取两个参数中的较大值的函数,但是这个函数有一个缺省值,是10。如果没有显式指定第二个参数,那么这个Lambda函数就会使用缺省值作为第二个参数。
此外,Lambda函数还可以使用可变参数,以便在调用时传入任意数量的参数,如下所示:
my_avg = lambda *args: sum(args)/len(args) print(my_avg(2,4,6))
在上面的例子中,我们使用Lambda函数创建了一个计算任意数量参数的平均值的函数。这个函数使用可变参数将传入的参数都保存到args这个元组中,并计算这些参数的和与数量,得到平均值并输出。
总结一下,Lambda函数是Python中的一种非常方便的函数,可以快速创建简单的、无名字的函数。通过Lambda函数,我们可以轻松地将一个函数作为另一个函数的参数传递,提高代码的可重用性。使用Lambda函数的方法也很简单,只需要使用关键字“lambda”来创建一个表达式即可。同时,Lambda函数还可以使用默认参数和可变参数,提供更强大的功能。
