本文共 1046 字,大约阅读时间需要 3 分钟。
Lambda表达式(Lambda abstraction)是一个匿名函数,直接对应于数学中的lambda抽象。它没有函数名,因此被称为匿名函数。Lambda表达式可以用来表示某种操作或逻辑。
函数名在编程中并没有实际意义,尤其是当函数只会被调用一次时。为了简化代码,Python引入了Lambda表达式的语法糖,使开发者可以直接使用匿名函数。
与其他语言不同,Python的Lambda表达式要求函数体只能包含单独的一条语句,即返回值表达式。因此,Lambda表达式通常用于单个调用场景。
Lambda表达式的本质是一个等价形式的匿名函数。通过编译器将Lambda表达式转换为常规代码,开发者可以用更少的代码实现同样的功能。
虽然Lambda表达式看起来非常先进,其实它只是一个由编译器转换为常规代码的语法糖。因此,建议不要过度使用,以免代码难以调试和理解。
<函数对象名> = lambda <形式参数列表> : <表达式>表达式> 形式参数列表> 函数对象名>
from functools import reduce# 使用Lambda表达式替代匿名函数print(reduce(lambda x, y: x + y, range(10))) # 输出:55
print(list(map(lambda x: x ** 2, range(5)))) # 输出:[0, 1, 4, 9, 16]
print(list(filter(lambda x: x % 2 == 0, range(100)))) # 输出:[0, 2, 4, ..., 98]
f = lambda func, n: 1 if n == 0 else n * func(func, n - 1)print(f(f, 4)) # 输出:24
t = lambda: Trueprint(t()) # 输出:True
转载地址:http://bizwz.baihongyu.com/