匿名函数lambda
Posted my_captain
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了匿名函数lambda相关的知识,希望对你有一定的参考价值。
什么是lambda
lambda是一种生成函数对象表达式形式,它返回的一个函数。由于它没有变量名,有时也被叫做匿名函数
lambda语法
以lambda关键字开头,之后是一个或多个参数,接着是一个冒号,最后是一个表达式
lambda arg1, arg2, ...argN: 表达式
注意:
1.lambda是一个表达式,而不是一个语句
2.lambda的主题是一个单个的表达式,而不是一个代码块
实例
实例1
定义一个函数,传入三个参数,并返回它们的和
使用def定义
def func(x, y, z):
return x + y + z
print(func(1, 2, 3))
使用lambda定义
f = lambda x, y, z: x + y + z
print(f(1, 2, 3))
实例2
传入三个位置参数,返回三个参数的拼接字符串。通过改变第一个默认参数的值,来改变返回的字符串
使用def定义
def contact_string(a=‘I‘, b=‘ like‘, c=‘ Python‘):
return a + b + c
print(contact_string(‘We‘))
使用lambda定义
x = (lambda a="I", b=" like", c=" Python": a + b + c)
print(x("We"))
实例3
编写跳转表
使用def定义
def f1(x):
return x ** 2
def f2(x):
return x ** 3
def f3(x):
return x ** 4
L = [f1, f2, f3]
for f in L:
print(f(2))
print(L[0](3))
使用lambda定义
L = [lambda x : x ** 2,
lambda x : x ** 3,
lambda x : x ** 4]
for f in L:
print(f(2))
print(L[0](3))
实例4
使用字典的形式创建行为表
使用def定义
key = "got"
def behavior(key):
if key == "already":
return 2 + 2
elif key == "got":
return 2 * 4
elif key == "one":
return 2 ** 6
print(behavior(key))
使用lambda定义
key = ‘got‘
print({
‘alredy‘: (lambda : 2 + 2),
‘got‘: (lambda : 2 * 4),
‘one‘: (lambda : 2 ** 6)
}[key]())
以上是关于匿名函数lambda的主要内容,如果未能解决你的问题,请参考以下文章