Python(十)lambada表达式

一、Lambda 表达式

        概念:是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包

        原因:函数名并没有实际的意义,为了简便,所以推出了lambada表达式的语法糖!

        注意:与其它语言不同,Python的Lambda表达式的函数体只能有单独的一条语句,也就是返回值表达式语句

        理解:匿名函数的等价形式来理解lambada表达式!

        :虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖",由编译器帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能。建议不要乱用,因为这就和某些很高级的黑客写的代码一样,简洁、难懂,、难以调试!

二、语法

<函数对象名> = lambda   <形式参数列表>:<表达式>

匿名函数的作用

1.不用命名,直接实现简单功能;但是如果只是"单个调用"的话,还是要命名变量

2.让代码更加简洁

三、练习

"""
语法说明:匿名函数的关键字为 lambda

冒号前面是 形参;冒号后面是返回值

"""
from functools import reduce

#(1)累加
# def add(x,y):
#     return  x+y
# print(reduce(add,range(10)))
print(reduce(lambda x,y:x+y,range(10)))

#(2)阶乘
# def mypow(x):
#     return x**2
print(list(map(lambda x:x**2,range(5))))

#(3)偶数
# def isood(num):
#     return num%2 ==0
print(list(filter(lambda x:x%2==0,range(100))))

练习2:高级

# 需求:求阶乘

f = lambda func, n: 1 if n == 0 else n * func( func, n - 1 )

print(f(f,4)) #24

练习3:无参

t = lambda: True

print(t()) #True

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值