Python Lambda 表达式等价普通函数实现

张开发
2026/4/15 1:26:45 15 分钟阅读

分享文章

Python Lambda 表达式等价普通函数实现
Python Lambda 表达式等价普通函数实现flyfishLambda 是 Python 中的匿名函数用于快速定义单行、简单逻辑的函数语法lambda 参数: 表达式。每一个 Lambda 用法都搭配等价的普通def函数实现1. Lambda 基础1.1 立即执行 LambdaIIFEImmediately Invoked Function Expression 立即调用函数表达式# Lambda 写法匿名立即调用print(立即执行lambda,(lambdax:x1)(2))# 输出3# 等价普通函数定义立即调用defadd_one(x):returnx1print(等价普通函数,add_one(2))1.2 命名 Lambdaadd_onelambdax:x1print(命名lambda调用,add_one(2))1.3 多参数 Lambda# Lambda 写法full_namelambdafirst,last:fFull name:{first.title()}{last.title()}print(多参数lambda,full_name(guido,van rossum))# 等价普通函数deffull_name(first,last):returnfFull name:{first.title()}{last.title()}print(等价普通函数,full_name(guido,van rossum))2. Lambda 支持的所有参数类型Lambda 完全兼容 Python 函数的参数类型和普通函数参数规则一致。参数类型Lambda 写法等价普通函数位置参数(lambda x,y,z: xyz)(1,2,3)def f(x,y,z): return xyz默认参数(lambda x,y,z3: xyz)(1,2)def f(x,y,z3): return xyz关键字参数(lambda x,y,z3: xyz)(1,y2)def f(x,y,z3): return xyz可变位置参数*args(lambda *args: sum(args))(1,2,3)def f(*args): return sum(args)可变关键字参数**kwargs(lambda **kwargs: sum(kwargs.values()))(one1,two2)def f(**kwargs): return sum(kwargs.values())关键字-only 参数(lambda x,*,y0: xy)(1,y2)def f(x,*,y0): return xy# Lambda 合集print(位置参数,(lambdax,y,z:xyz)(1,2,3))print(默认参数,(lambdax,y,z3:xyz)(1,2))print(关键字参数,(lambdax,y,z3:xyz)(1,y2))print(*args,(lambda*args:sum(args))(1,2,3))print(**kwargs,(lambda**kwargs:sum(kwargs.values()))(one1,two2))print(关键字-only,(lambdax,*,y0:xy)(1,y2))# 等价普通函数合集deff1(x,y,z):returnxyzdeff2(x,y,z3):returnxyzdeff3(x,y,z3):returnxyzdeff4(*args):returnsum(args)deff5(**kwargs):returnsum(kwargs.values())deff6(x,*,y0):returnxy3. Lambda 语法 三元表达式Lambda 写法odd_evenlambdax:oddifx%2elseevenprint(3是,odd_even(3))# oddprint(4是,odd_even(4))# even等价普通函数if-else 语句defodd_even(x):ifx%2:returnoddelse:returnevenprint(3是,odd_even(3))print(4是,odd_even(4))输出3是 odd 4是 even完整代码print(立即执行lambda,(lambda x:x1)(2))# 输出3# 等价普通函数定义立即调用 defadd_one(x):returnx1print(等价普通函数,add_one(2))add_onelambda x:x1print(命名lambda调用,add_one(2))#Lambda 写法full_namelambda first,last:fFull name: {first.title()} {last.title()}print(多参数lambda,full_name(guido,van rossum))# 等价普通函数 deffull_name(first,last):returnfFull name: {first.title()} {last.title()}print(等价普通函数,full_name(guido,van rossum))print(位置参数,(lambda x,y,z:xyz)(1,2,3))print(默认参数,(lambda x,y,z3:xyz)(1,2))print(关键字参数,(lambda x,y,z3:xyz)(1,y2))print(*args,(lambda*args:sum(args))(1,2,3))print(**kwargs,(lambda**kwargs:sum(kwargs.values()))(one1,two2))print(关键字-only,(lambda x,*,y0:xy)(1,y2))deff1(x,y,z):returnxyz deff2(x,y,z3):returnxyz deff3(x,y,z3):returnxyz deff4(*args):returnsum(args)deff5(**kwargs):returnsum(kwargs.values())deff6(x,*,y0):returnxyprint(位置参数,f1(1,2,3))print(默认参数,f2(1,2))print(关键字参数,f3(1,y2))print(*args,f4(1,2,3))print(**kwargs,f5(one1,two2))print(关键字-only,f6(1,y2))输出立即执行lambda 3 等价普通函数 3 命名lambda调用 3 多参数lambda Full name: Guido Van Rossum 等价普通函数 Full name: Guido Van Rossum 位置参数 6 默认参数 6 关键字参数 6 *args 6 **kwargs 3 关键字-only 3 位置参数 6 默认参数 6 关键字参数 6 *args 6 **kwargs 3 关键字-only 3

更多文章