python函数lambda表达式


在这里插入图片描述

lambda表达式的作用

  • 对于一种函数,只有一个返回值,并且只有一句代码。无需再按def函数定义语句书写,使用lambda表达式可以简化代码。
  • lambda表达式也称为匿名函数。

lambda的语法

lambda 参数列表:表达式/返回值

其中:参数列表可有可无,可以接收任意数量的参数,但只能返回一个值。

def fun1():
    return 100
print(fun1)
print(fun1())

fun2 = lambda :100
print(fun2)
print(fun2())

<function fun1 at 0x00000213E2812EA0>
100
<function <lambda> at 0x00000213E4675A60>
100

注意fun2是一个函数名字。

练习:计算三个数的平均值

# 计算三个数的平均值
def avg(a,b,c):
    return ((a+b+c)/3)
print(avg(1,2,3))

avg2 = lambda a,b,c:((a+b+c)/3)
print(avg2(1,2,3))

2.0
2.0

lambda表达式的参数形式

与函数的参数形式相同

无参数

fun = lambda :100
print(fun())

100

一个参数

fun = lambda a:a*2
print(fun('python'))

pythonpython

默认参数

fun = lambda a,b,c=3:((a+b+c)/3)
print(fun(1,2,3))
print(fun(1,2))

2.0
2.0

可变参数

*args

接收不定长的位置参数,返回一个元组。

fun = lambda *args:args
print(fun(10,20,30))

(10, 20, 30)

**kwargs

接收不定长的关键字参数,返回一个字典。

fun = lambda **kwargs:kwargs
print(fun(name = 'Mary',age=20))

{'name': 'Mary', 'age': 20}

注意:args和kwargs名称是可变的,但一般默认是这两个。但前面一个*号和两个 *号要注意。

lambda表达式的应用

带判断的lambda表达式

fun = lambda a,b:a if a>b else b # 表示条件成立,执行前面的;条件不成立,执行后面的。

print(fun(100,50))
print(fun(50,100))

100
100

列表数据按照字典键的值排序

student = [
    {'name':'Mary','age':20},
    {'name':'Jone','age':25},
    {'name':'Susan','age':30}
]

student.sort(key=lambda x:x['age'])# 按照age对应的值升序排序
print(student)

student.sort(key=lambda x:x['age'],reverse=True)# 按照age对应的值降序排序
print(student)

[{'name': 'Mary', 'age': 20}, {'name': 'Jone', 'age': 25}, {'name': 'Susan', 'age': 30}]
[{'name': 'Susan', 'age': 30}, {'name': 'Jone', 'age': 25}, {'name': 'Mary', 'age': 20}]
  • 9
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值