说明:
在python中,有一个名为Lambda的函数。Lambda函数是一个匿名函数-表示该函数没有任何名称。
当我们声明一个函数时,我们使用“ def”关键字来定义一个具有合适函数名的函数。但是lambda函数不需要。
声明lambda表达式/函数的语法:
lambda parameterlist : expression
哪里,
lambda是定义lambda表达式的保留字。
parameterlist是一个逗号分隔的参数列表,您可以在函数定义中找到(但请注意缺少括号)。
expression是单个Python表达式。该表达式不能是完整的语句。
注意:
此函数可以根据需要使用任意数量的参数,但表达式必须为单个。
您可以随时随地使用lambda函数。
示例1:详细说明简单函数和Lambda函数之间的区别。
# 我们用来定义矩形区域的简单方法: # 演示矩形的Python代码 # 显示def()和lambda()之间的差异。 def area(l,b): return l*b; g = lambda l,b: l*b print('lambda function:',g(7,4)) #调用函数 print('Via Simple function:',area(7,4))
输出结果
lambda function: 28 Via Simple function: 28
代码说明:
在这里,两个函数都返回矩形的相同区域,但是在使用def关键字时,我们需要完成函数的所有功能并返回它。但是,与lambda相同,我们只需要提供参数和相应的表达式即可返回答案。由于它不包含任何return语句。我们还可以将lambda定义放在需要函数的任何地方,而我们根本不必将其分配给变量。这就是lambda函数的简单性。
例2:如何使用lambda函数使用不同的形式?
print('Ways to use and declare lambda functions:') # 简单地定义lambda函数 #示例-1 g=lambda x, y: 3*x + y print('Ex-1:',g(10,2)) #示例-2 f=lambda x, y: print('Ex-2:',x, y) f(10,2) #示例-3 h=lambda x, y: 10 if x == y else 2 print('Ex-3:',h(5,5)) #示例-4 i=lambda x, y: 10 if x == y else 2 print('Ex-4:',i(5,3))
输出结果
Ways to use and declare lambda functions: Ex-1: 32 Ex-2: 10 2 Ex-3: 10 Ex-4: 2
lambda()功能可以用类似于其它功能一起使用filter(),map()等等
filter():需要参数列表。该函数过滤掉给定列表中所有返回该函数True的元素。
map(): map() python中的函数,用于通过函数或lambda函数映射列表的所有元素及其条件。
语法:
map(function_object, iterable1, iterable2,...)
实施例3:使用lambda函数的filter(),map(),reduce()
#使用filter(),带有lambda()函数的map()。 # Python代码说明 # filter()与lambda() li = [5, 7, 22, 97, 54, 62, 77, 23, 73, 61] li = list(filter(lambda x: (x%2 == 0) , li)) print('By using filter :',li) # Python代码说明 # 带lambda()的map() # 获得清单的两倍。 l=[{'name':'nhooo', 'star':10},{'name':'yash', 'star':8},{'name':'sanjeev', 'star':8}] for output1 in (map(lambda x : x['name'],l)): print('maping name:',output1) for output2 in (map(lambda x : x['star']*10,l)): print('maping star:',output2)
输出结果
By using filter : [22, 54, 62] maping name: nhooo maping name: yash maping name: sanjeev maping star: 100 maping star: 80 maping star: 80