python: lambda表达式也叫作匿名函数

108 篇文章 3 订阅

lambda表达式,也叫匿名函数

格式: lambda 参数: 返回值

需求: 根据传入的参数返回最大值 使用lambda函数书写

三目运算 : 条件成立时返回的代码 if 条件 else 条件不成立时返回的代码

max_num = lambda a, b: a if a > b else b

使用变量可以储存lambda函数

print(max_num(1, 2)) print(max_num(9, 2))

print(type(max_num)) # <class 'function'>

def func(): print('abc')

print(type(func)) # <class 'function'>

通过对数据类型的查看,我们发现lambda和普通函数本质上是一样的,只不过在使用时构造更为简单

在使用lambda函数时可以不用变量接收

print((lambda a, b: a if a > b else b)(3, 4)) # 4

但是不适用变量接收,lambda函数只能使用一次,使用后集被释放,无法再次使用

lambda缺点: 没有办法书写负责的函数,因为其没有函数体,只有返回值,所以返回值后边只能书写一个表达式,lambda可读性极差

使用lambda完成递归(了解,一般不建议写复杂的代码)

func1 = lambda n: func1(n - 1) + n if n != 1 else 1

RecursionError: maximum recursion depth exceeded

超出最大调用深度,没有明确的递归跳出条件

print(func1(100))

lambda应用场景

可以用于一次性函数使用

可以作为函数的参数进行传递

list sort(key= )

lsit sort排序方法中的key所需要的参数就是一个函数,我们可以传入lambda表示

list1 = [{'a': 1}, {'b': 12}, {'c': 10}]

排序规则:根据字典的第一个键所对应的值进行排序

list1.sort(key=lambda x:list(x.values())[0])

格式: 列表.sort(key = lambda 每次传入的元素: 排序所依据的规则)

print(list1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值