Python 中的lambda函数表达式
lambda x:x+n
这是一个 Python 中的lambda
函数表达式。它定义了一个匿名函数,该函数接受一个参数x
,并返回x+n
的值。再定义常数n。
n = 5
my_function = lambda x: x + n
print(my_function(3))
运行结果:
在上述代码中,首先定义了变量n
为5
,然后定义了lambda
函数my_function()
,它会将传入的参数x
加上n
的值。当调用my_function(3)
时,会返回3 + 5
,即8
。也就是,x是变量,可以累加n。
在 Python 中,可以使用以下方式定义一个带有多个参数的lambda
函数:
# 定义一个接受两个参数并返回它们之和的lambda函数
add = lambda x, y: x + y
print(add(3, 5)) # 输出: 8# 定义一个接受三个参数并返回它们乘积的lambda函数
multiply = lambda a, b, c: a * b * c
print(multiply(2, 3, 4)) # 输出: 24
在lambda
函数的定义中,参数列表放在lambda
关键字之后,用逗号分隔,然后是一个冒号,冒号后面是函数的返回表达式。
继续活用lambda
函数。
def increment(n):return lambda x:x+n
f=increment(5)
print(f(3))
lambda
函数常常作为参数传递给其他函数,例如map()
、filter()
和sorted()
等函数。
# 使用map函数和lambda函数对列表中的每个元素求平方
nums = [1, 2, 3, 4, 5]
squared_nums = list(map(lambda x: x ** 2, nums))
print(squared_nums) # 输出: [1, 4, 9, 16, 25]# 使用filter函数和lambda函数过滤出列表中的偶数
even_nums = list(filter(lambda x: x % 2 == 0, nums))
print(even_nums) # 输出: [2, 4]# 使用sorted函数和lambda函数按照元素的绝对值大小对列表进行排序
nums = [-3, 1, -2, 4, -1]
sorted_nums = sorted(nums, key=lambda x: abs(x))
print(sorted_nums) # 输出: [-1, 1, -2, -3, 4]
在一些简单的函数逻辑场景下,使用lambda
函数可以避免定义过多的具名函数,使代码更加简洁。
# 不使用lambda函数
def add(x, y):return x + yresult = add(3, 5)
print(result)# 使用lambda函数
add_lambda = lambda x, y: x + y
result = add_lambda(3, 5)
print(result)
使用过程中,lambda
函数使用lambda
关键字定义,是匿名函数,没有函数名,参数列表后紧跟一个表达式,该表达式的值就是函数的返回值。可见,在一些简单的函数逻辑场景下,如果不需要定义一个具名函数,使用lambda
函数可以简化代码结构。