Python学习——lambda表达式

本文介绍了Python中的lambda表达式,它用于创建匿名函数和嵌套函数。通过lambda,可以结合Python的map(), reduce(), filter()等内建函数,实现简洁而强大的功能,体现了Python的编程哲学。文章特别讨论了lambda在map()中如何处理可迭代数据,reduce()如何进行嵌套执行以及filter()如何进行数据筛选。" 127000105,749215,理解投资回收期:静态与动态分析,"['项目管理', '财务分析', '投资分析', '经济模型']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  lambda表达式,用来创建匿名函数

lambda <参数> : <返回值>

lambda expression1 : expression2
# 等价于
def func(expression1):
	return expression2

  还可以用来创建嵌套函数

def func(x):
	return lambda a:a+x

f = func(5)
# 现在f是一个lambda对象
print(f(3))
# 8

  再多几层也可以

def fun(a):
    return lambda b: lambda c: 100*a+10*b+c

f1 = fun(1)
f2 = f1(2)
print(f2(3))
# 123
应用

  lambda的特性,使得它可以配合Python内建的 mapreducefilter 函数,用少量代码完成复杂的功能,也体现了Python的哲学

  map()函数将第二个参数提供可迭代数据分别传给第一个参数的函数处理

# 计算一个列表所有数字的平方
L = [1, 2, 3, 4, 5]
print(list(map(lambda x: x * x, L)))
# [1, 4, 9, 16, 25]

  reduce()函数接收参数类型和map函数相同,但是函数要接收两个参数,嵌套执行整个可迭代数据

redece(fun,[1,2,3,4]) = fun(fun(fun(1,2),3),4)
# 计算整个列表的积
L = [1, 2, 3, 4, 5]
print(reduce(lambda a, b: a * b, L))
# 120

  filter()函数用于筛选,第一个参数的函数执行第二个参数内的值,为真留下

# 筛选整个列表内3的倍数
L = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list(filter(lambda x: not x % 3, L)))
# [3, 6, 9]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值