Python学习-lambda表达式
2018-06-18 02:53:33来源:未知 阅读 ()
lambda只是一个表达式,函数体比def简单很多。lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。lambda表达式是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义。
#求三个数的和
1 f = lambda x,y,z:x+y+x 2 print(f(1,2,3)) #4 3 4 f = lambda x,y,z:x+y+z 5 print(f(1,2,3)) #6
在常规的def函数构造中,可以有任意数量的语句,并且在def函数定义中,首先需要给函数一个名称,对于lambda表达式而言,lambda是一个匿名函数,不需要给lambda构造提供任何名称。
lambda的构造更多的是为了方便,当你需要构造一个lambda函数时,请记住以下几点:
1、lambda是一个表达式,而不是一个语句,它不支持表达式块。
2、lambda在我们需要的地方进行定义,它不需要命名。
3、lambda不需要返回语句
具有单一参数的Lambda的构造
1 #具有单一参数的lambda结构构造 2 x = [23,34,55] 3 func = lambda x:max(x) 4 print(func(x)) #55
具有多个参数的Lambda构造:
1 #具有多个参数的lambda构造 2 price,volume = 60,20 3 func = lambda price,volume:price/volume 4 print(func(price,volume)) #3.0
具有逻辑运算符的Lambda构造
1 #具有逻辑运算符的Lambda构造 2 signal = 'SELL' 3 func = lambda x:x>50 and signal == 'BUY' 4 print(func(65)) #False
带有条件表达式的Lambda构造
1 #带有条件表达式的Lambda构造 2 func = lambda x:'BUY' if x > 45 else 'SELL' 3 print(func(56)) #BUY
构建带有多个if...else语句的Lambda表达式
1 #带有多个条件语句的lambda表达式 2 func = lambda x:'BUY' if x <= 30 else 'SELL' if x >= 70 else 'None' 3 print(func(78)) #SELL
将Lambda表达式与Map、Filter和Reduce功能一起使用
Lambda通常与map()、filter()和reduce()等函数结合在一起使用
1 #lambda与map()映射函数一起使用 2 seq = [1,2,3,4,5] 3 func = map(lambda x:x**2,seq) 4 print(list(func)) #[1, 4, 9, 16, 25]
1 #lambda与filter()滤波函数一起使用 2 Signals = ['Buy','Sell',None,'Sell','Sell','Sell'] 3 func = filter(lambda x:x == 'Buy' or x == 'Sell',Signals) 4 print(list(func)) #['Buy', 'Sell', 'Sell', 'Sell', 'Sell']
1 #lambda与reduce()函数一起使用 2 #在python 3中,reduce()函数已经被从全局名字空间里移除了,它现在被放置在 fucntools 模块里 3 # 如果想要使用它,则需要通过引入 functools 模块来调用 reduce() 函数: 4 from functools import reduce 5 print(reduce((lambda x,y:x + y),[2,1.35,-2.4,3])) #3.95
参考:
1、https://www.quantinsti.com/blog/popular-python-learning-the-lambda-function/
2、https://blog.csdn.net/imzoer/article/details/8667176
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:网络-udp
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash