Python中lambda的用法

一、lambda应用场景

如果一个函数只有一个返回值,并且只有一句代码,则可以使用lambda表达式进行简化

二、语法

语法: lambda 参数列表:表达式
注意两点:
1.lambda表达式的参数可有可无,函数的参数在lambda中同样适用
2.lambda表达式能接受任何数量的参数,但只能返回一个表达式的值

三、样例演示1

# 定义一个函数,该函数返回一个数值型的数,如520
def f():
    return 520
# 将f函数用lambda表达式表示
f1 = lambda : 520
print(f()) # 打印520
print(f1)  # <function <lambda> at 0x000001BD0BE213A0>即返回的是一个内存地址----》相当于函数名
print(f1())  # 函数的调用	

运行结果:
在这里插入图片描述

四、样例演示2

# 定义一个函数,用于计算a+b的和
def f11(a, b):
    return a+b
# 改用lambda后
f12 = lambda a,b: a+b

print(f11(5,4))
print(f12(5,4))

运行结果:
在这里插入图片描述

五、在工作场景中的简单运用

# 带判断的lambda
fn6 = lambda a,b:a if a>b else b  # 使用了双目表达式,即传入a,b两个值作为参数,如果a大于b就返回a否则返回b
print(fn6(300,1000))

运行结果:
在这里插入图片描述

# 如果列表里的元素为字典,则需要按照字典里的某一个元素进行排序时,可以使用lambda函数
students = [
    {"name" : "zhansna" , "age" : 18},
    {"name" : "lisi" , "age" : 19},
    {"name" : "wawu" , "age" : 20}
]
# 按name值升序排序
students.sort(key=lambda x: x['name'])  # 按名字进行升序排序
print(students)

# 按name值降序排序
students.sort(key=lambda x: x['name'], reverse=True)
print(students)

# 按age值升序排列
students.sort(key=lambda x: x['age'])
print(students)

运行结果:
在这里插入图片描述

六、lambda几种参数形式总结

# lambda的参数形式
# 1. 无参数
fn1 = lambda : 100
print(fn1())
# 2. 一个参数
fn2 = lambda a : a
print(fn2("平平安安"))
# 3. 默认参数
fn3 = lambda a, b, c=100 : a+b+c  # 因为是默认参数,即含有默认值的参数,故当函数调用的时候,如果不传入值给默认参数,则使用定义时的参数,如若赋值则覆盖定义时的默认值
print(fn3(10,30))
# 4. 可变参数 *args  这里的可变参数传入到lambda后,返回值为元组
fn4 = lambda *args : args
print(fn4(10,20,30))

# 5. 可变参数 **kwargs  传入的是不定长的关键字参数,如 name=“张三”  ,其返回值为字典
fn5 = lambda **kwargs : kwargs
print(fn5(name="张三",age=100))

运行结果:
在这里插入图片描述

七、写在后面

以上是本人在学习lambda过程中的一点简单总结,如有错误地方,欢迎读者朋友们评论指正。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-希冀-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值