Python Lambda函数被称为不带名称的匿名函数。 Python允许不以标准方式声明函数,即使用 def 关键字。而是使用 lambda 关键字声明匿名函数。但是,Lambda函数可以接受任意数量的参数,但是它们只能以表达式形式返回一个值。
下面给出了定义匿名函数的语法。
lambda arguments: expression
它可以接受任意数量的参数,并且只有一个表达式。当需要函数对象时,它很有用。
考虑下面的lambda函数示例。
# A是一个参数,A + 10是得到评估和返回的表达式。 x = lambda a:a+10 # 在这里,我们正在打印函数对象 print(x) print("sum = ",x(20))
输出:
<function <lambda> at 0x0000019E285D16A8> sum = 30
在上面的示例中,定义了 lambda a:a + 10 匿名函数,其中 a 是一个参数, a + 10 是一个表达式。给定的表达式将被求值并返回结果。上面的lambda函数与普通函数相同。
def x(a): return a+10 print(sum = x(10))
Lambda函数的多个参数
# A和B是参数,A * B是评估和返回的表达式。 x = lambda a,b: a*b print("mul = ", x(20,10))
输出:
mul = 200
在无涯教程在另一个函数内部匿名使用lambda函数的主要角色时,可以在方案中更好地描述它们。在Python中,lambda函数可用作高阶函数的参数,该函数接受其他函数作为参数。
#函数table(n)打印n的表 def table(n): return lambda a:a*n # A将包含迭代变量I,并且在每个函数调用时返回n的倍数 n = int(input("Enter the number:")) b = table(n) #输入的数字将传递到函数表中。 B将包含一个Lambda函数,它再次又一次地调用迭代变量i for i in range(1,11): print(n,"X",i,"=",b(i)) #使用迭代变量i调用lambda函数b
输出:
Enter the number:10 10 X 1 = 10 10 X 2 = 20 10 X 3 = 30 10 X 4 = 40 10 X 5 = 50 10 X 6 = 60 10 X 7 = 70 10 X 8 = 80 10 X 9 = 90 10 X 10 = 100
lambda函数通常与Python内置函数 filter()和 map()函数一起使用。
Python内置的 filter()函数接受一个函数和一个列表作为参数。它提供了一种有效的方法来过滤出序列中的所有元素。它返回新的序列,函数在该序列中求值为 True 。
考虑以下示例,其中从给定列表中过滤出唯一的奇数。
#用于过滤掉包含奇数的元组的程序 lst = (10,22,37,41,100,123,29) oddlist = tuple(filter(lambda x:(x%3 == 0),lst)) # 元组包含Lambda函数评估为True的所有元组项目 print(oddlist)
输出:
(37, 41, 123, 29)
Python中的 map()函数接受一个函数和一个列表。它提供了一个新列表,其中包含该函数为每个项目返回的所有已修改项目。
考虑下面的 map()函数示例。
#程序过滤掉包含奇数的列表 lst = (10,20,30,40,50,60) square_list = list(map(lambda x:x**2,lst)) # 元组包含Lambda函数评估为true的列表的所有项目 print(square_tuple)
输出:
(100, 400, 900, 1600, 2500, 3600)
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)